2015-06-02 27 views

Odpowiedz

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

Jeśli jedno z nich ma wartość 0, oznacza to brak danych.

+0

Technicznie powinieneś umieścić to jako "wtedy nie ma danych ** do wyświetlenia **". Albo może zwrócić zero, ale to nie znaczy, że model bazowy nie zawiera żadnych danych. –

4

Spowoduje to zwrócenie rzeczywistej liczby wierszy, niezależnie od filtrów w tabeli.

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

jTable.getRowCount() zwróci tylko widoczną liczbę wierszy. Aby sprawdzić isEmpty(), lepiej jest użyć modelu getRowCount().

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

masz stałą liczbę kolumn .. załóżmy trzy

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; 
    } 

jeśli zwracana wartość równa 0 jest absolutnie pusty stół

-2

Właściwie nie istnieje metoda za naukę tego, mój przyjacielu. Ale ja sam, używając metody, aby dowiedzieć się, czy jest pusty, czy nie.

Najpierw podczas tworzenia JTable ustaw domyślny rząd wierszy 0. Jeśli chcesz użyć wartości JTable, zmień wartość JTable na dane zwracane przez bazę danych. Więc jeśli nie ma data.getRowCount() ponownie zwróci 0. I tak będziesz wiedział, czy JTable jest pusty, czy nie.

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(); 
} 

Na koniec chcę powiedzieć, że jeśli JTable ma głowę, na przykład: Nazwa-Nazwisko-Age etc, table.getRowCount(); table.getColumnCount(); nie działa z powodu szefa JTable. Tak więc, moim zdaniem, jeśli nie możemy sprawdzić jTable, sprawdź zestaw danych, które zostaną zapisane w tabeli.

+0

(1-) ten kod pokazuje, jak dodać dane z ResultSet do modelu tabeli. Pytanie dotyczyło wiedzy, kiedy "stolik" jest pusty. Skąd pochodzą dane potencjalnie nie ma znaczenia. – camickr

+0

Tak jak na początku sądzę, że jest tak: "Nie ma dla niego zdefiniowanej metody, prawda?". Chcę tylko pokazać, co robię, czy jTable jest pusty, czy nie. Logicznie, jeśli nie ma danych z bazy danych, jTable opróżni się poprawnie? Myślę, że w ten sposób rozwiązuję mój problem, aw moich projektach działa. – Babafingo

+0

Może to rozwiązać twój problem, ale nie zadałeś pytania, a odpowiedź nie jest tematem. Baza danych jest nieistotna. Pytanie dotyczyło danych w JTable, a nie tego, czy zapytanie w bazie danych zwraca jakiekolwiek dane. – camickr