簡體   English   中英

將JTable添加到Jpanel后不可見

[英]JTable not visible when added to Jpanel

我的前面板有JButton。 單擊它時,應以表格格式顯示數據。 我已將數據和列名稱分配給JTable參數,但在前端不可見。 我確認正確分配了值,但不確定為什么表在面板中不可見。 這是我的代碼:

private void disPlayDataActionPerformed(java.awt.event.ActionEvent evt) {                                        
    // TODO add your handling code here:
       sql = "select * from persons";   

    try {
              Statement  st = con.createStatement();
              ResultSet rs = st.executeQuery(sql);
              ResultSetMetaData metaData = rs.getMetaData();
              int columnCount=metaData.getColumnCount();
              String[]columnNames=new String[columnCount];

              for(int i=0;i< columnNames.length;i++){
                columnNames[i]=metaData.getColumnName(i+1);

        }                       
        ArrayList<String[]> rows=new ArrayList<>();
        while(rs.next()){
            String[]currentrow=new String[columnCount];
            for(int i=0;i<columnCount;i++){
                currentrow[i]=rs.getString(i+1);

        }

              rows.add(currentrow);
        }   
        String[][] rowsArray=new String[rows.size()][columnCount];
        rowsArray=rows.toArray(rowsArray);
        JTable jt=new JTable(rowsArray,columnNames);
        jPanel2.add(jt);
        jt.setVisible(true);



    } catch (SQLException ex) {
        Logger.getLogger(EmployeePanel.class.getName()).log(Level.SEVERE, null, ex);
    }

    finally{

    }

}                   

你可以試試這個嗎

JTable jt=new JTable(rowsArray,columnNames);  
jt.setBounds(30,40,200,300);   // you can put dimension as per your wish...

JScrollPane sp=new JScrollPane(jt);  
jPanel2.add(sp);
// code fore set visible true to jpanel2...

Swing的布局API是惰性的,它是通過這種方式設計的。 您需要在准備就緒時告訴它,以重新驗證容器層次結構。

JTable jt=new JTable(rowsArray,columnNames);
jPanel2.add(jt);
jPanel2.revalidate();
jPanel2.repaint();

一般來說,在不知道完整代碼的情況下,簡單地擁有一個主JTable並在需要時更改其模型要容易得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM