java - 覆盖jTable中的值

标签 java swing netbeans-6.9

为什么我的 jTable 中的值会覆盖第一个值 从 jcombobox 中选择?有人可以帮我解决这个代码吗:

private void jButton15ActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
    Connection con;
    Statement stmt;
    try {
        // TODO add your handling code here
        Class.forName("sun.jdbc.odbc.JdbcOdbc");
    } catch (ClassNotFoundException ex) {
        JOptionPane.showMessageDialog(null, ex);
    }
    try {
        con= DriverManager.getConnection("Jdbc:Odbc:food");
        stmt= con.createStatement();
        int row = 0;

        String st= JcbSub.getSelectedItem().toString();
        jTable3.setValueAt(st, row, 0);    

            row ++;

        } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, ex);
    } 
}

最佳答案

尽管您在最后增加了行号,但您已将其声明为局部变量 它会丢失其值并初始化为 0 在每个方法调用时。因此,您的第一行每次都会被覆盖。

int row = 0; // move this out to a member variable

String st= JcbSub.getSelectedItem().toString();
jTable3.setValueAt(st, row, 0);    

row ++; // this increment currently has no effect on next method call

您每次都会打开一个新的数据库连接,而不是通过调用 con.close() 来关闭它。事实上,由于您没有通过 Statement 对象 stmt 执行任何查询,因此不需要方法内的所有 JDBC 代码。

关于java - 覆盖jTable中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950347/

相关文章:

整数除法的Java余数?

java多线程: traffic intersection system

java - 帕斯卡三角递归程序不起作用

java - 无法向内部类添加新方法

javascript - 无法点击 NetBeans 中的 jslint 错误

java - JTextArea不断在for循环中添加行,如何防止这种情况?

java - 为什么 ChangeListener 的 getSource() 不返回用于生成事件的类型的预转换对象?

java - 为什么 setJMenuBar() 不触发 ContainerEvent?

java - 如何将一个 JTextArea 与另一个 JTextArea 并排放置?

Java:如何在打开另一个 JFrame 时关闭它?