表达能力不好,只能笼统地说是J2SE连接数据库的问题 麻烦大家帮我解决一下 谢谢

wilpharma 2010-11-08 10:45:58


第一个问题如上图 如何让那几个“宿舍号”那一行自动适应那个表框?
第二个问题:如何让每一次按确定之后 把上一次出现的内容清空?谢谢............小弟在这里感谢大家了
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wilpharma 2010-11-08
  • 打赏
  • 举报
回复
import java.awt.*;
import java.sql.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;

import javax.swing.*;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
public class dormitory_Inquire extends JFrame implements ActionListener{
Vector rowVectors=new Vector();;
Vector columnHeaderVector=new Vector();
JButton b1,b2;
JTextField txt;
JComboBox box;
JTable table;
JScrollPane p1 = new JScrollPane();
boolean flag = false;
String s_id;
int astu_id;
DefaultTableModel tableModel=new DefaultTableModel ( );
dormitory_Inquire f;
ResultSet r;
Connection conn;
Statement stm;

//构造方法
dormitory_Inquire()
{ super("宿舍查询");
setLayout(null);
setSize(1080,540);
setResizable(false);
setVisible(true);

txt = new JTextField(50);
add(txt);
txt.setBounds(320, 20, 250, 25);
box = new JComboBox();
add(box);
box.setBounds(580, 20, 90, 25);
box.addItem("宿舍楼号");
box.addItem("宿舍号");
box.addItem("姓名");
box.addItem("性别");
box.addItem("空缺人数");
b1 = new JButton("确定");
add(b1);
b1.setBounds(380, 50, 70, 25);
b1.addActionListener(this);

b2 = new JButton("取消");//取消按钮的监听
add(b2);
b2.setBounds(480, 50, 70, 25);
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String cmd=e.getActionCommand();
if(cmd.equals("取消"))
txt.setText("");
}
});

//表
String[ ]columnHeaderVector = {""};
table = new JTable();
JScrollPane srp = new JScrollPane(table);
srp.setBounds(0, 80, 1080,500);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
add(srp);
table.setModel(tableModel);
tableModel.setColumnIdentifiers(columnHeaderVector);
for(int i=0;i<table.getColumnCount();i++){
DefaultTableColumnModel colModel = (DefaultTableColumnModel) table.getColumnModel();
TableColumn col = colModel.getColumn(i);
int width = 10;

TableCellRenderer renderer = col.getHeaderRenderer();
if (renderer == null) {
renderer = table.getTableHeader().getDefaultRenderer();
}
Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false,
false, 10, 10);
width = comp.getPreferredSize().width;
col.setPreferredWidth(width+180);
}
}

public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if(e.getSource() instanceof JButton){
if(cmd.equals("确定"))
{
try {
rowVectors.clear();
columnHeaderVector.clear();
check();

} catch (SQLException e1) {

e1.printStackTrace();

}
}
}
}
public void check() throws SQLException
{

if(txt.getText().equals(""))
{
JOptionPane.showMessageDialog(f,"请填写查询条件");
return;

}


try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundException e){

System.out.println("加载驱动程序失败,请检查");

}
try{

String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D://AccomodationControl.mdb" ;

conn = DriverManager.getConnection(url);

stm = conn.createStatement();

if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("宿舍楼号"))
{

r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,性别,空缺人数 from 宿舍查询 where 宿舍楼号= '"+txt.getText()+"' ");

}

else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("宿舍号"))
{

r = stm.executeQuery("select 宿舍楼号,姓名,性别,空缺人数 from 宿舍查询 where 宿舍号= '"+txt.getText()+"' ");

}
else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("姓名")){

r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,性别 ,空缺人数 from 宿舍查询 where 姓名= '"+txt.getText()+"'");
}
else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("性别")){

r = stm.executeQuery("select 宿舍楼号,宿舍号,姓名,空缺人数 from 宿舍查询 where 性别= '"+txt.getText()+"'");
}
else
if((!(txt.getText().equals("")))&& box.getSelectedItem().equals("空缺人数"))
{
r = stm.executeQuery("select 宿舍楼号,宿舍号,空缺人数 from 宿舍查询 where 空缺人数= '"+txt.getText()+"'");

}

int columnCount =r.getMetaData().getColumnCount();

Vector singleRow=new Vector();
while(r.next())
{


for(int i=0;i<columnCount;i++)
singleRow.addElement(r.getObject(i+1));

rowVectors.addElement(singleRow);

}

ResultSet rsColumns=conn.getMetaData(). getColumns(null,null,"宿舍查询",null);

while(rsColumns.next())
{
columnHeaderVector.addElement(rsColumns.getString("COLUMN_NAME"));

}

tableModel.setDataVector(rowVectors,columnHeaderVector);

stm.close();
conn.close();

}catch(SQLException ae){

JOptionPane.showMessageDialog(f,"没有此信息");

}

}




public static void main(String[] args){
new dormitory_Inquire();
}
}
这是代码 查询宿舍号那里和空缺人数那里无法查询
liu_yang_0923 2010-11-08
  • 打赏
  • 举报
回复
LZ,这图片看不了呀
内容概要:本文聚焦于高维多阶段随机规划问题,深入研究了正则化分解方法与马尔可夫过程在刻画不确定性动态演化中的应用,并提供了完整的Python代码实现。通过引入正则化技术有效降低了高维随机优化问题的计算复杂度,结合马尔可夫链建模多阶段决策过程中的不确定性传播机制,提升了模型在复杂动态环境下的求解效率与鲁棒性。研究涵盖了问题建模、算法设计、数值求解及结果分析全过程,具有较强的理论深度与工程实践价值; 适合人群:具备一定运筹学、优化理论基础及Python编程能力,从事智能决策、人工智能、能源系统优化、金融工程等相关领域的科研人员、高校研究生以及工业界研发工程师; 使用场景及目标:①应用于电力系统调度、供应链管理、金融资产配置等存在多阶段不确定性的复杂决策场景;②掌握高维随机规划的建模思路与高效求解技术,深入理解正则化方法与马尔可夫过程在实际优化算法中的融合机制与实现路径; 阅读建议:建议结合提供的Python代码进行动手实践,重点关注算法实现细节、参数敏感性分析与收敛性验证,鼓励在不同应用场景中迁移和改进该方法,进一步探索其在分布鲁棒优化、动态规划等前沿方向的扩展潜力。
内容概要:本文系统研究了离散时间线性系统中基于共识的分布式滤波器的稳定性与最优性问题,深入探讨了KF(卡尔曼滤波)、DKF(分布式卡尔曼滤波)、SMDKF(基于平方根的最大熵分布式卡尔曼滤波)、CI(协方差交叉)、ICF(信息共识滤波)和HCMCI(基于高阶交叉协方差的信息融合)等多种滤波算法的理论基础、数学推导与实现机制。通过Matlab平台构建多传感器网络仿真环境,实现了各类算法在不同噪声统计特性和通信拓扑结构下的状态估计仿真,重点分析了各算法在估计精度、收敛速度、鲁棒性及一致性方面的性能差异,并对融合策略中的协方差传播、信息权重分配与共识迭代过程进行了细致对比,旨在为复杂环境下多智能体系统的分布式状态估计提供可复现的技术方案与理论支撑。; 适合人群:具备控制理论、信号处理、线性系统理论及Matlab编程基础的研究生、科研人员,以及从事多传感器融合、分布式估计算法开发、无人系统导航与智能电网监控等领域的工程技术人员。; 使用场景及目标:① 掌握主流分布式滤波算法的核心思想与数学建模方法;② 在多节点传感网络中实现高效可靠的状态估计;③ 对比分析不同共识融合策略在非理想通信条件下的性能表现;④ 支持学术论文复现、算法改进与工程化验证,服务于科研创新与系统优化设计。; 阅读建议:建议结合Matlab代码逐模块解析算法实现流程,重点关注状态预测、局部更新、信息融合与一致性达成的关键步骤;可通过调整系统噪声、观测噪声、网络连接拓扑等参数开展扩展性仿真实验,深入理解算法的稳定边界与最优性条件,进一步探索其在实际应用场景中的适应性与改进空间。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧