0

次のコードを使用すると、列ヘッダーを表示することができません.Jscrollpaneも追加されましたが、うまくいきません...

String[] col = {"COLA","COLB","COLC"};
Object[][] data = {};

DefaultTableModel model = new DefaultTableModel(data,col);


JTable table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);

contentPane.add(table);
table.setBounds(295, 11, 512, 411);
contentPane.add(scrollPane,BorderLayout.CENTER);
4

2 に答える 2

3

JScrollPane を作成するときは、その唯一の子コンポーネントであるテーブルを渡します。ただし、その後、テーブルを contentPane に追加します。つまり、テーブルを JScrollPane から削除して、コンテンツ ペインに追加します。テーブルを contentPane に追加してはなりません。それ自体がテーブルを含む scrollPane のみ。

また、絶対に使用しないでsetBounds()ください。コンポーネントの配置を処理するレイアウトマネージャーを使用しているため、とにかく意味がありません。この場合、テーブルは JScrollPane によって処理されるため、これは非常に理にかなっています。

于 2012-05-21T14:26:37.947 に答える
2

これはうまくいきました:

public static void main(String[] args) {
  String[] col = { "COLA", "COLB", "COLC" };
  Object[][] data = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
  DefaultTableModel model = new DefaultTableModel(data, col);
  JTable table = new JTable(model);
  JFrame frame = new JFrame();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.getContentPane().add(new JScrollPane(table));
  frame.setVisible(true);
}
于 2012-05-21T14:39:28.000 に答える