Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JAVA中用jTable显示数据它附加旧值_Java_Swing_Netbeans_Combobox_Jtable - Fatal编程技术网

如何在JAVA中用jTable显示数据它附加旧值

如何在JAVA中用jTable显示数据它附加旧值,java,swing,netbeans,combobox,jtable,Java,Swing,Netbeans,Combobox,Jtable,我在netbeans中使用jTable。选择组合框后,如果我选择employee id 1,它将在jTable中显示emp 1的所有数据。但下一次当我选择emmployeeid2jtable时,它会显示empid1的单个值和empid2的所有其他值。 我的代码如下 Connect c = new Connect();//connection to database con = (Connection) c.getConnection(); st

我在netbeans中使用jTable。选择组合框后,如果我选择employee id 1,它将在jTable中显示emp 1的所有数据。但下一次当我选择emmployeeid2jtable时,它会显示empid1的单个值和empid2的所有其他值。 我的代码如下

Connect c       = new Connect();//connection to database
con             = (Connection) c.getConnection();
st              = (Statement)con.createStatement();
String ddate    = (String)text.getSelectedItem();
System.out.println("id " +ddate);
rs = st.executeQuery("select e.employee_id,e.`first_name`, i.outtime, i.outtime_date from tbl_employee e,tbl_outtime i  where e.employee_id=i.outtime_emp_id and i.`outtime_date` LIKE '%/"+month2+"/"+year1+"'and outtime_emp_id="+ddate);
while(rs.next())
{
    String dat1=rs.getString("outtime_date");
    String e1=rs.getString("employee_id");
    System.out.println(e1);
    st33=(Statement) con.createStatement();      
    rs33=st33.executeQuery("select i.intime, i.intime_date from tbl_employee e,tbl_intime
    i where e.employee_id=i.intime_emp_id and i.`intime_date`='"+dat1+"' and 
    i.intime_emp_id="+e1);
    if(rs33.next())
    {
        int emp=rs.getInt("employee_id");
        System.out.println(emp);
        String name=rs.getString("first_name");
        String dept=rs33.getString("intime");
        String desig=rs.getString("outtime");
        String join=rs33.getString("intime_date");
        jTable1.setValueAt(emp, cnt, 0);
        jTable1.setValueAt(name, cnt, 1);
        jTable1.setValueAt(dept, cnt, 2);
        jTable1.setValueAt(desig, cnt, 3);
        jTable1.setValueAt(join, cnt, 4);
        cnt=cnt+1;
    }
}
如果有人知道,请告诉我解决方案。

  • 阅读关于

  • JTable
    s视图的所有数据都存储在

  • ,并将
    JDBC
    中的新行添加到
    XxxTableModel


使用TableModel添加行

阅读


对于示例。

与所有其他Swing组件一样,表格由两部分组成:视图部分(代码>表格)和模型部分(代码>表格模型)。当模型指示视图已通过引发事件进行更改时,视图将更新。有关更多信息,请参阅

因此,对于您的用例,您可以调整现有的
TableModel
,或者创建一个新的。我个人会选择创建一个新的,因为您正在使用数据库


请注意,Swing组件只应在事件分派线程上访问和修改,长时间运行的任务(如查询数据库)不应在此线程上发生(请参阅)。这就是为什么我建议创建一个新的
TableModel
。您可以在用于查询数据库的工作线程上创建此模型,并在事件分派线程上一次性替换该模型。
SwingWorker
类最适合于此。

很难说什么cleaver,为了更好的帮助,请尽快发布oky,但您能告诉我,我可以在单击comboboxtable.setModel(新的YourTableModel())时清除jTable吗;