2015-06-02 17 views

Trả lời

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

Nếu một trong hai là 0, thì không có dữ liệu.

+0

Về mặt kỹ thuật, bạn nên đặt nó là "sau đó không có dữ liệu ** để hiển thị **". Hoặc có thể trả về 0, nhưng điều đó không có nghĩa là mô hình cơ bản không chứa bất kỳ dữ liệu nào. –

4

Điều này sẽ trả lại số hàng thực tế, bất kể bộ lọc nào trên bảng.

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

jTable.getRowCount() sẽ chỉ trả về số hàng có thể nhìn thấy. Vì vậy, để kiểm tra isEmpty() sau đó nó tốt hơn để sử dụng getRowCount() trên mô hình.

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

bạn có một số cố định các cột .. giả sử ba

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

nếu giá trị trả về bằng 0 của nó hoàn toàn một bảng trống

-2

Trên thực tế, không có phương pháp cho việc học nó là bạn của tôi. Nhưng bản thân tôi, sử dụng một phương pháp để tìm hiểu xem nó có sản phẩm nào hay không.

Lúc đầu, trong khi bạn tạo JTable đặt số hàng mặc định 0. Khi bạn muốn sử dụng JTable, hãy tạo JTable với dữ liệu trả về từ cơ sở dữ liệu. Vì vậy, nếu không có data.getRowCount() sẽ trả lại 0 một lần nữa. Và như vậy, bạn sẽ biết liệu JTable có trống hay không.

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

Cuối cùng tôi muốn nói rằng nếu JTable có đầu, ví dụ: Tên-Họ-Age vv, table.getRowCount(); table.getColumnCount(); không làm việc vì người đứng đầu của JTable. Vì vậy, ý kiến ​​của tôi là nếu chúng ta không thể kiểm tra jTable, hãy kiểm tra Dataset được viết trong bảng.

+0

(1-) mã này cho thấy cách thêm dữ liệu từ một ResultSet vào một mô hình bảng. Câu hỏi đặt ra là biết khi nào một "bảng" trống. Dữ liệu có khả năng đến từ đâu là không liên quan. – camickr

+0

Khi tôi lần đầu tiên nghĩ là "Không có phương pháp xác định cho nó, phải không?". Tôi chỉ muốn hiển thị những gì tôi đang làm cho dù jTable có sản phẩm nào hay không. Một cách hợp lý, nếu không có dữ liệu trả về từ cơ sở dữ liệu, jTable sẽ trống rỗng đúng không? Tôi nghĩ cách này giải quyết vấn đề của tôi và trong các dự án của tôi nó hoạt động. – Babafingo

+0

Nó có thể giải quyết vấn đề của bạn, nhưng bạn không hỏi câu hỏi và bạn trả lời là tắt chủ đề. Cơ sở dữ liệu không liên quan. Câu hỏi là về dữ liệu trong một JTable, không phải về việc liệu một truy vấn cơ sở dữ liệu trả về bất kỳ dữ liệu nào. – camickr

Các vấn đề liên quan