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));**

请参阅@Dan 帖子了解为什么要使用 JScrollPane。

于 2012-12-03T03:48:03.843 回答