1

次のコードで列のタイトルが表示される理由について何か考えはありますか?私はscollpaneの有無にかかわらず試しました。

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 800, 600);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JScrollPane scrollpane = new JScrollPane(table);

contentPane.add(scrollpane, "wrap, span");

tableModel = new DefaultTableModel(new Object[]{"Name","Instrument Type","Channel","Number of Channels"},0);



table = new JTable();
table.setBounds(6, 6, 697, 172);
tableModel = new DefaultTableModel(new Object[]{"Fixture Name","Fixture Type","Fixture Channel","Number of Channels"},0);
        table.setModel(tableModel);
        contentPane.add(table);
4

2 に答える 2

3
  1. レイアウトマネージャーを使用する
  2. テーブルではなく、フレームにスクロールペインを追加します。

コードスニペットに欠落しているか、例が間違っています。

JScrollPane scrollpane = new JScrollPane(table);

これは、テーブルがすでに作成されていることを意味します。この場合、テーブルを二重に作成するか、テーブルを生成します。NullPointerException

コードは次のようになります...

table = new JTable();
tableModel = new DefaultTableModel(new Object[]{"Fixture Name","Fixture Type","Fixture Channel","Number of Channels"},0);
table.setModel(tableModel);
contentPane.add(new JScrollPane(table));

詳細については、テーブルの使用方法をご覧ください。

于 2012-12-03T02:31:35.130 に答える
1
tableModel = new DefaultTableModel(new Object[]{"Fixture Name","Fixture Type","Fixture   Channel","Number of Channels"},0);
    table.setModel(tableModel);
    contentPane.add(table); // This is the place that is creating problem for you.

追加するときに、JTableをJScrollPaneに追加し、次のようにスクロールペインをコンテナに追加します。

    **contentPane.add(new JScrollPane(table));**

JScrollPaneを使用する理由については、 @Danの投稿を参照してください。

于 2012-12-03T03:48:03.843 に答える