0

使用下面的代码,无法设法让列标题显示..也添加了 Jscroolpane,但没有运气......

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。只有滚动窗格,它本身包含表格。

另外,永远不要使用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 回答