2011-05-18 13 views
26

JTableで列ヘッダーが表示されないJPanelを作成し、JPanelにJTableを追加しました。JTableの列ヘッダーが表示されない

Object rowData[][] = { { "Row1-Column1", "Row1-Column2", "Row1-Column3"}, 
       { "Row2-Column1", "Row2-Column2", "Row2-Column3"} }; 
      Object columnNames[] = { "Column One", "Column Two", "Column Three"}; 
      JTable jTable = new JTable(rowData, columnNames); 
+5

私はあなたが表示する列名のためにそれをJScrollPaneの中に置く必要があると信じています... –

+0

wo JScableをJScrollPaneに追加してrksを追加してください – Lalchand

+0

Amirの答えは「正しい」ことを忘れないでください。 @ Dilum:それは答えではなく、なぜコメントですか? –

答えて

49

JTableのためのAPIの状態:

は、「あなたは(JScrollPaneのの 外)スタンドアロンビューでのJTableを使用したいとヘッダーが表示したい場合、あなたはそれを得ることができることに注意してください getTableHeader()を使用して、別に表示してください。

それともスクロール区画にテーブルを追加し、パネルにあなたのスクロールを追加...

14

ここにJScrollPaneを使用せずにJTableのにヘッダを追加する方法は次のとおりです。

int rows = 21; 
int cols = 3; 
JTable table = new JTable(rows, cols); 
JTableHeader header = table.getTableHeader(); 
JPanel panel = new JPanel(); 
panel.setLayout(new BorderLayout()); 
panel.add(header, BorderLayout.NORTH); 
panel.add(table, BorderLayout.CENTER); 
2

あなたのコードに次のコードを追加することができます

DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); 
renderer.setPreferredSize(new Dimension(0, 0)); 
table.getTableHeader().setDefaultRenderer(renderer); 
+1

..何に到達するのですか? – kleopatra

+0

Jtableのデフォルトヘッダーを削除します。デフォルトでは、A、B、Cのヘッダーとして表示されます。上記のコードを使用して削除できます。 – jcrshankar

関連する問題