Java 我可以在不使用rs2xml.jar的情况下为jTable创建一个方法吗?
我是编程新手,我使用netbeans 8.1编写了一个程序。我的程序用于在jTable中显示要搜索的所有相关项。然后我们可以在另一个jTable中选择特定项。我使用rs2xml为jTable创建了一个方法,效果很好。但在我使用它之后,我的搜索出了问题。它不会为搜索显示正确的项目。当我从库中删除rs2xml.jar时,搜索工作正常,但当我选择该项时,它不会显示在jTable中。我想不出来 以下是搜索项目的代码:Java 我可以在不使用rs2xml.jar的情况下为jTable创建一个方法吗?,java,swing,netbeans,netbeans-8.1,Java,Swing,Netbeans,Netbeans 8.1,我是编程新手,我使用netbeans 8.1编写了一个程序。我的程序用于在jTable中显示要搜索的所有相关项。然后我们可以在另一个jTable中选择特定项。我使用rs2xml为jTable创建了一个方法,效果很好。但在我使用它之后,我的搜索出了问题。它不会为搜索显示正确的项目。当我从库中删除rs2xml.jar时,搜索工作正常,但当我选择该项时,它不会显示在jTable中。我想不出来 以下是搜索项目的代码: private void txtSearchKeyReleased(java
private void txtSearchKeyReleased(java.awt.event.KeyEvent evt) {
try {
@SuppressWarnings("LocalVariableHidesMemberVariable")
ResultSet rs = oilmart.getConnection().createStatement().executeQuery("SELECT * FROM stock WHERE Item_Name LIKE '%" + txtSearch.getText() + "%'");
if (rs.next()) {
billinfo();
txtPlace.setText(rs.getString("Place"));
} else {
JOptionPane.showMessageDialog(this, "Result not found", null, JOptionPane.ERROR_MESSAGE, null);
}
} catch (SQLException | HeadlessException e) {
}
// TODO add your handling code here:
}
这是我使用rs2xml.jar创建的表方法:
public void billinfo() {
DefaultTableModel dtm = (DefaultTableModel) tblBillinfo.getModel();
dtm.setRowCount(0);
try {
@SuppressWarnings("LocalVariableHidesMemberVariable")
ResultSet rs = oilmart.getConnection().createStatement().executeQuery("SELECT * FROM stock WHERE Item_Name LIKE '%" + txtSearch.getText() + "%'");
while (rs.next()) {
Vector v = new Vector();
v.add(rs.getString("Item_No"));
v.add(rs.getString("Item_Name"));
v.add(rs.getString("Qty"));
v.add(rs.getString("Price_per_Qty"));
v.add(rs.getString("Place"));
buy_price = Integer.parseInt(rs.getString("Price_per_Qty"));
dtm.addRow(v);
tblBillinfo.setModel(DbUtils.resultSetToTableModel(rs));
}
} catch (Exception e) {
}
}
这是用于选择特定项目的:
private void tblBillinfoMouseClicked(java.awt.event.MouseEvent evt) {
x++;
int r = tblBillinfo.getSelectedRow();
String no = tblBillinfo.getValueAt(r, 0).toString();
String name = tblBillinfo.getValueAt(r, 1).toString();
String buy = tblBillinfo.getValueAt(r, 3).toString();
buy_price = (int) tblBillinfo.getValueAt(r, 3);
String plc = tblBillinfo.getValueAt(r, 4).toString();
tblBill.setValueAt(no, x, 0);
tblBill.setValueAt(name, x, 1);
tblBill.setValueAt(buy, x, 2);
txtPlace.setText(plc);
}
请帮我弄清楚这件事。谢谢 您有代码(看起来是正确的)将每一行数据添加到TableModel中:
dtm.addRow(v);
但接下来的语句将使用ResultSet中剩余的数据行替换第一行:
tblBillinfo.setModel(DbUtils.resultSetToTableModel(rs));
结果是TableModel将丢失第一行数据
去掉上面的语句。你能澄清一下“为jTable创建一个方法”是什么意思吗?我的界面中有两个表。第一个显示搜索的所有相关项。该方法适用于该表。单击该表时,所选项目将显示在另一个表上。我已删除该语句,并检查了结果。但这并没有改变现状。