gpt4 book ai didi

java - 我可以在不使用 rs2xml.jar 的情况下为 jTable 创建方法吗?

转载 作者:行者123 更新时间:2023-11-30 07:07:41 25 4
gpt4 key购买 nike

我是编程新手,我使用 netbeans 8.1 编写了一个程序。我的程序用于显示 jTable 中要搜索的所有相关项目。然后我们可以选择另一个jTable中的特定项目。我使用 rs2xml 为 jTable 创建一个方法,它工作正常。但我使用后发现我的搜索出错了。它不会显示搜索的正确项目。当我从库搜索中删除 rs2xml.jar 时,它可以正常工作,但是当我选择该项目时,它不会显示在 jTable 中。我无法弄清楚这一点。

这是搜索项的代码:

     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 将丢失第一行数据。

去掉上面的语句即可。

关于java - 我可以在不使用 rs2xml.jar 的情况下为 jTable 创建方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39804846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com