Как я могу взять значение из столбца? (Джава) - PullRequest
0 голосов
/ 06 января 2019

Я делаю простой сигнал, и мне нужно показать предупреждение, если значение из столбца 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 голосов
/ 06 января 2019

Ваша переменная day имеет тип int, а jTable1.getValueAt(0, 0) возвращает Object, следовательно, оба имеют разные типы и всегда будут возвращать false при сравнении.

Поскольку вы хотите сравнить их равенство как строку, следовательно, вы должны изменить сравнение с этим,

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...