1

我正在使用 JDBC。我的班级有一个带有 JTabbedPane 的 JFrame 来显示我的 JPanel 以及我的不同方法的 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);
4

1 回答 1

1
panel.setLayout(null);

问题是null布局。不要那样做。Swing 被设计为与布局管理器一起使用,不这样做几乎无一例外都会导致麻烦。使用绝对布局将需要您手动管理组件的边界,而您没有这样做。如果您需要除默认值以外的其他内容FlowLayout,只需创建一个符合您需要的内容:

panel.setLayout(new BorderLayout());

(也可以在JTabbedPane没有帮助面板的情况下添加,但我想您需要在选项卡中添加更多组件)。

于 2013-08-22T09:57:10.127 回答