2015-06-02 3 views

ответ

5
table.getRowCount(); 
table.getColumnCount(); 

Если один из них равен 0, то данных нет.

+0

Технически вы должны указать его как «тогда нет данных ** для отображения **». Либо можно вернуть ноль, но это не означает, что базовая модель не содержит никаких данных. –

4

Это вернет действительное количество строк, независимо от каких-либо фильтров на столе.

int count= jTable.getModel().getRowCount(); 

jTable.getRowCount() вернет только видимый ряд строк. Поэтому, чтобы проверить isEmpty(), лучше использовать getRowCount() на модели.

public static boolean isEmpty(JTable jTable) { 
     if (jTable != null && jTable.getModel() != null) { 
      return jTable.getModel().getRowCount()<=0?true:false; 
     } 
     return false; 
    } 
0

у вас есть фиксированное число столбцов .. предположим, три

public int Actualrows(DefaultTableModel m) { 
     int row = 0; 
     int i = 0; 
     for (i = 0; i < m.getRowCount(); ++i) { 

      try { 
       if (!(m.getValueAt(i, 0).equals("")) && !(m.getValueAt(i, 1).equals("")) 
         && !(m.getValueAt(i, 2).equals(""))) { 
        row++; 
       } 

      } catch (NullPointerException e) { 
       continue; 
      } 


     } 
     return row; 
    } 

если возвращаемое значение равно 0 его абсолютно пустая таблица

-2

На самом деле, не существует никакого метода для изучения этого моего друга. Но я сам, используя метод, чтобы узнать, пуст он или нет.

Во-первых, пока вы создаете JTable, установите число строк по умолчанию 0. Когда вы хотите использовать JTable, сделайте JTable с данными, которые возвращают счет из базы данных. Поэтому, если нет data.getRowCount(), он снова вернет 0. Итак, вы узнаете, пуст или нет JTable.

try (ResultSet rs = st.executeQuery(query)) { 
    int colcount = rs.getMetaData().getColumnCount();//get's the row count in the database 
    DefaultTableModel tm = new DefaultTableModel(); 
    for (int i = 1; i <= colcount; i++) { 
     tm.addColumn(rs.getMetaData().getColumnName(i)); 
    } 
    while (rs.next()) { 
     Object[] row = new Object[colcount]; 
     for (int i = 1; i <= colcount; i++) { 
      row[i - 1] = rs.getObject(i); 
     } 
     tm.addRow(row); 
    } 
    jTblAd.setModel(tm); 
    conn.close(); 
} 

Наконец я хочу сказать, что если JTable имеет голову, например: имя-фамилия-Age и т.д., table.getRowCount(); table.getColumnCount(); не работает из-за главы JTable. Поэтому я считаю, что если мы не можем проверить jTable, проверьте набор данных, который будет записан в таблице.

+0

(1-) этот код показывает, как добавить данные из ResultSet в модель таблицы. Вопрос состоял в том, чтобы знать, когда «таблица» пуста. Там, где данные потенциально поступали, не имеет значения. – camickr

+0

Как я сначала думаю, это то, что «для него нет определенного метода, не так ли?». Я только хочу показать, что я делаю, является ли jTable пустым или нет. Логически, если нет данных, возвращаемых из базы данных, jTable будет пустым правильно? Я думаю, что таким образом решает мою проблему, и в моих проектах она работает. – Babafingo

+0

Это может решить вашу проблему, но вы не задали вопрос, и вы отвечаете не по теме. База данных не имеет значения. Вопрос касался данных в JTable, а не о том, возвращает ли запрос базы данных какие-либо данные. – camickr

Смежные вопросы