jTable会听jDateChooser的'textfield'吗?

时间:2015-04-07 13:41:41

标签: user-interface netbeans jdatechooser

大家好我试图为我的系统和分析设计论文制作一个调度系统,我在尝试连接/绑定/使jTable监听jDateChooser的输入时遇到了麻烦。精心设计,我希望我的日程安排如下:

  

我在jDateChooser中选择了一个日期

     

jTable将排除'本身通过jDatechooser上输入的日期

无论如何要做到这一点? 现在我所拥有的只是一个table propertyChangelistener:

    private void sched_tablePropertyChangeListener(java.beans.PropertyChangeEvent evt) {
try{
            String calendar = ((JTextField)jdc.getDateEditor().getUiComponent()).getText();
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/accountsDB?zeroDateTimeBehavior=convertToNull","root","");
            String query = "select * from accountsdb.schedules where Date= ?";
            ps= conn.prepareStatement(query);
            ps.setString(1, calendar);
            ResultSet rs = ps.executeQuery();
            sched_table.setModel(DbUtils.resultSetToTableModel(rs));   
        } 
        catch (Exception e){
            JOptionPane.showMessageDialog(null, e);
        }   finally {
    if (conn != null) 
        try { conn.close(); 
        } catch (SQLException ignore) {}
    if (ps != null){
        try {
            ps.close();
        } catch (SQLException ignore){}
    }

}  
}

不知何故,当我运行我的应用程序时,如果该代码块在其上,它似乎无法打开,这意味着我确实做错了什么。任何人都可以改变或告诉我应该做什么或者我应该从哪里开始听jDatechooser的jTable?

〜提前感谢那些愿意回答的人!〜

1 个答案:

答案 0 :(得分:0)

没关系,事实证明我所要做的就是更改jDateChooser的日期格式,因为它不是完全相同的格式,因此我无法从数据库中调用任何内容。如果有人对我所做的事感兴趣,我会把它留在这里

private void jdcPropertyChange(java.beans.PropertyChangeEvent evt) {
try{
                   String d1  = ((JTextField)jdc.getDateEditor().getUiComponent()).getText();
                   Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/accountsDB?zeroDateTimeBehavior=convertToNull","root","");

            String query = "select * from accountsdb.schedules where Date= ? order by time,timezone";

            ps = conn.prepareStatement(query);
            ps.setString(1, d1);
            ResultSet rs = ps.executeQuery();
            sched_table.setModel(DbUtils.resultSetToTableModel(rs));
               } catch(Exception e){
                   JOptionPane.showMessageDialog(null, e);
               }    finally {
    if (conn != null) {
        try { conn.close(); 
        } catch (SQLException ignore) {}

    }
    if (ps != null){
        try {
            ps.close();
        } catch (SQLException ignore){}
    }
    }
    }

这样做是每次我从jDateChooser(命名为jdc)中选择日期时,表/数据库会调用该日期并对其进行排序。这就是我想要的。