我正在制作一个JTable,我遇到了两个问题。 #1表标题显示在表的一侧,#2表示滚动窗格没有显示。这是我现在的一些代码。
String [] data = {"a", "b", "c", "d", "e"};
JFrame frame = new JFrame("String Table");
JPanel middlePanel = new JPanel();
DefaultTableModel model = new DefaultTableModel();
model.addColumn("String", data);
JTable table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
frame.getContentPane().add(middlePanel, BorderLayout.CENTER);
middlePanel.add(scrollPane);
middlePanel.add(table.getTableHeader());
middlePanel.add(table);
frame.setSize(400, 200);
frame.setVisible(true);
答案 0 :(得分:2)
仅使用代码行middlePanel.add(scrollPane);
JPanel (middlePanel)
应该GridLayout
或BorderLayout
删除代码行middlePanel.add(table.getTableHeader());
和middlePanel.add(table);
在frame.getContentPane().add(middlePanel, BorderLayout.CENTER);
之后移动代码行middlePanel.add(scrollPane);
,如果frame.add(middlePanel);
}> <{1}},则LayoutManager
可能会JFrame
移动/ LI>
删除frame.setSize(400, 200);
替换为frame.pack()
,并通过覆盖PreferredSize
getPreferredSize
确定正确的JScrollPane
醇>