2010-11-07 382 views
3


我在intellij中創建了一個gui形式的jtable,我沒有看到任何數據。 最奇怪的是,當我使用它出的IntelliJ 創建表單代碼工作。
我使用的最常見的例子
String[] columnNames = {"First Name", "Last Name"};
Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}
然後
JTable table = new JTable(data, columnNames);
但我沒有得到任何數據。
這是因爲佈局經理?
任何幫助繼續與intellij gui和jtable工作?
任何好的jtable + gui格式intellij例子?在IntelliJ IDEA中使用JTable

回答

9

當使用IDEA GUI設計,JTable中被自動創建的,如果你在你的代碼new JTable(...)它會覆蓋和IDEA創建的表對象的所有屬性配置在Designer中的表將會丟失。

所以,你必須在這裏2點的方法。一種方法是依靠IDEA創建表並設置其屬性,然後使用table.setModel(dataModel);從dataModel向您的表提供數據。

第二種方法是從代碼中動態創建表,然後通過scrollPane.setViewportView(myTable);將此表添加到表單中現有的JScrollPane或其他面板上。

IDEA也有叫創建自定義更先進的方法。如果啓用此複選框對JTable的形式,IDEA增加createUIComponents()方法在其中創建該組件手動像... = new JTable(...)綁定類。

您可以download the complete sample project,並用不同的方法進行實驗。

+0

謝謝!自定義創建完成了工作。 – Jeb 2010-11-08 01:58:28

1

這個工作在的IntelliJ我:

package swing; 

import javax.swing.*; 

/** 
* JTableTest 
* User: Michael 
* Date: 11/7/10 
* Time: 4:49 PM 
*/ 
public class JTableTest 
{ 
    public static void main(String[] args) 
    { 
     JFrame frame = new JFrame("JTable Test"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JTable table = createTable(); 
     JScrollPane scrollPane = new JScrollPane(table); 
     frame.getContentPane().add(scrollPane); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static JTable createTable() 
    { 
     String[] columnNames = {"First Name", "Last Name"}; 
     Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}}; 
     JTable table = new JTable(data, columnNames); 
     table.setFillsViewportHeight(true); 

     return table; 
    } 
}