关于JTable的一个问题,很急!在线等解决办法!谢谢 在这个函数actionPerformed()体中,加入刷新table的语句,如tb.invalidate();tb.repaint();试试看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的代码是不是只能显示10条记录????你定义了10行7列,如果数据库中的记录超过10条,你的JTable能把库中的记录全部显示出来吗?? 用可以用刷新的方法试试能不能解决第一个问题,tb.updateUI();(这个方法放在把数据放在table之后)第二个问题你可以 每次都把这个数组清空啊 ~ 查一次清空一次 每次只放新的数据就行了 另外 建议用vector的方式去存放数据,操作起来更方便 ~ 呵呵,其实很简单,你这是数据更新后你自己没有通知JTable表格已经更新数据的结果,你更新数据后必须通知JTable数据已经改变,你用((DefaultTableModel)tb.getModel()).fireTableDataChanged();这个加在按钮执行完毕之后试试?如果报错那么你需要自己定义一个TableModel,然后在数据改变的地方调用fireTableDataChanged();这个函数. 附加一句,fireTableDataChanged();这个方法是AbstractTableModel类的,一般情况下如果要用到JTable的话你自己必须重新定义你的TableModel,要不然JTable非常不好用,再提个建议,你的JTable存放数据最好不要用数据,用JList或是Vector,这个存放数据的是在哪里定义的呢?是在你定义的TableModel类里面定义,你的TableModel如果不太会写你可以继承DefaultTableModel类.然后复写里面的一些重要方法. LZ建议你用new jtable(Vector,Vector);我用vector 写的查找findBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub rowData=new Vector(); String findvalue=searchField.getText().trim(); rowData = columnDAO.findRowData(str,findvalue); ((DefaultTableModel) jtable.getModel()).setDataVector(rowData, column); } });这个查找的方法:public Vector findRowData(String column,String likeID) { // TODO Auto-generated method stub String sql = ""; Vector rowdata = new Vector(); if (column.endsWith(",")) sql = "select " + column.substring(0, column.length() - 1) + " from custom where id like '%"+likeID+"%' order by id"; else sql = "select " + column + " from custom"; String[] columns = column.split(","); Connection con = db.getConnection(); PreparedStatement ps = null; ResultSet rs = null; try { ps = con.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { Vector vector = new Vector(); if (column.contains("id")) { vector.add(rs.getString("id")); } if (column.contains("name")) vector.add(rs.getString("name")); if (column.contains("age")) vector.add(rs.getInt("age")); if (column.contains("email")) vector.add(rs.getString("email")); if (column.contains("address")) vector.add(rs.getString("address")); if (column.contains("speciality")) vector.add(rs.getString("speciality")); if (column.contains("street")) vector.add(rs.getString("street")); rowdata.add(vector); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { db.release(rs); db.release(ps); db.release(con); } return rowdata; }你可以参照下 高分求一题解 请问谁有学习多线程的例子哦? 高手帮忙找错误!!!!!!!!!!! N年不来,回来之后发现hexiaofeng还是版主啊.真牛,好几年了!!! 类的问题;迷茫!求助! 普通打印机能打条码吗? YuLimin(阿敏当兵) 同志进来领分。呵呵 请各位朋友帮忙看下这段程序,谢谢大家了 Java里面有没有消息对话框啊,可以发确认,警告,错误等等 高手快帮忙阿,看看吧! 請幫我看看有什麼問題 企业开发的GUI应用程序,怎么给客户用?做成.exe的 还是?
你定义了10行7列,如果数据库中的记录超过10条,你的JTable能把库中的记录全部显示出来吗??
我用vector 写的查找
findBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
rowData=new Vector();
String findvalue=searchField.getText().trim();
rowData = columnDAO.findRowData(str,findvalue);
((DefaultTableModel) jtable.getModel()).setDataVector(rowData,
column);
}
});
这个查找的方法:
public Vector findRowData(String column,String likeID) {
// TODO Auto-generated method stub
String sql = "";
Vector rowdata = new Vector();
if (column.endsWith(","))
sql = "select " + column.substring(0, column.length() - 1)
+ " from custom where id like '%"+likeID+"%' order by id";
else
sql = "select " + column + " from custom";
String[] columns = column.split(",");
Connection con = db.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Vector vector = new Vector();
if (column.contains("id")) {
vector.add(rs.getString("id"));
}
if (column.contains("name"))
vector.add(rs.getString("name"));
if (column.contains("age"))
vector.add(rs.getInt("age"));
if (column.contains("email"))
vector.add(rs.getString("email"));
if (column.contains("address"))
vector.add(rs.getString("address"));
if (column.contains("speciality"))
vector.add(rs.getString("speciality"));
if (column.contains("street"))
vector.add(rs.getString("street"));
rowdata.add(vector);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
db.release(rs);
db.release(ps);
db.release(con);
}
return rowdata;
}
你可以参照下