我正在使用JDBC。 我的类有一个带有JTabbedPane的JFrame,用我的不同方法显示我的JPanels UI。 在这个面板上,我想在JTable中显示一个带有其他按钮列的结果集。 当我在新的JFrame上显示它时,这一切当前都在工作,但是当我尝试在现有的JFrame上显示它时。有人可以解释一下原因吗。
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
contentPane.add(tabbedPane, BorderLayout.CENTER);
JPanel panel = new JPanel();
tabbedPane.addTab("Main", null, panel, null);
panel.setLayout(null);
JTable table = new JTable(model);
DisplayButtonColumn testWithButtons1 = new DisplayButtonColumn(table,
displayHandler.getColCount());
DisplayButtonColumn testWithButtons2 = new DisplayButtonColumn(table,
displayHandler.getColCount() + 1);
panel.add(new JScrollPane(table));
// JFrame f = new JFrame();
// f.setSize(1000, 500);
// f.getContentPane().add(new JScrollPane(table));
// f.setVisible(true);
答案 0 :(得分:1)
panel.setLayout(null);
问题是null
布局。 不要那样做。 Swing旨在与布局管理器一起使用,而不是这样做会几乎毫无例外地导致麻烦。使用绝对布局需要您手动管理组件的边界,而您不是这样做的。如果你需要的东西不是默认的FlowLayout
,只需创建一个符合你需求的东西:
panel.setLayout(new BorderLayout());
(也可以在没有帮助面板的情况下添加到JTabbedPane
,但我想您需要在标签中添加更多组件。