如果来自第0列的值==今天,我会进行简单的警报,并且需要显示警报。
Calendar cal = new GregorianCalendar();
int day = cal.get(Calendar.DAY_OF_MONTH);
try {
File currDir= new File ("Baza.db");
String sc = currDir.getAbsolutePath();
sc = sc.substring(0, sc.length());
String url = "jdbc:sqlite://"+sc;
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT Day FROM Month");
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
if(jTable1.getValueAt(0, 0).equals(day)){
JOptionPane.showMessageDialog(null, "Do your question!");
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
我尝试使用方法getColumn,getColumnModel和getSelectedColumn,但是没有什么可以比较我的计算结果。
答案 0 :(得分:1)
您的day
变量的类型为int
,而jTable1.getValueAt(0, 0)
返回的是Object
,因此两者的类型不同,并且在比较时总是返回false
。 / p>
由于您想将它们的相等性作为字符串进行比较,因此您应从此更改比较,
if(jTable1.getValueAt(0, 0).equals(day)){
到
if(String.valueOf(jTable1.getValueAt(0, 0)).equals(String.valueOf(day))){
或者,您可以将Jtable列中的值解析为int
,然后像这样比较整数值,
if(Integer.parseInt(jTable1.getValueAt(0, 0).toString()) == day){
但是,我更喜欢第一种方法比较字符串,因为第二种方法可以碰到NumberFormatException