我怎样才能从专栏中获得价值? (Java)

时间:2019-01-06 10:28:11

标签: java jtable

如果来自第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,但是没有什么可以比较我的计算结果。

1 个答案:

答案 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