我正在制作一个JTable,但遇到2个问题。 #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);

最佳答案

仅使用代码行middlePanel.add(scrollPane);
JPanel (middlePanel)应该由GridLayoutBorderLayout放置
删除代码行middlePanel.add(table.getTableHeader());middlePanel.add(table);
将代码行frame.getContentPane().add(middlePanel, BorderLayout.CENTER);移到middlePanel.add(scrollPane);之后,如果frame.add(middlePanel);LayoutManager未被更改,则可能为JFrame
删除frame.setSize(400, 200);替换为frame.pack(),并通过覆盖PreferredSize代替getPreferredSize来确定正确的JScrollPane

07-26 09:27