大家好我试图为我的系统和分析设计论文制作一个调度系统,我在尝试连接/绑定/使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?
〜提前感谢那些愿意回答的人!〜
答案 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)中选择日期时,表/数据库会调用该日期并对其进行排序。这就是我想要的。