两个JPanel重叠?

时间:2011-01-27 01:09:05

标签: java swing user-interface jpanel overlap

这是我正在处理的代码:http://pastie.org/1501054当你运行它时,由于某种原因,两个面板重叠。为什么会这样?我能以任何方式解决它吗?

作为参数提供的ActionListener与程序的这一部分无关。

另外,我在哪里可以找到一个使用Eclipse的好的swing教程?

4 个答案:

答案 0 :(得分:0)

当你说你想要一个关于eclipse的好的摇摆教程时,你想要一个GUI构建器或Swing教程吗? Swing就是布局。一旦你做到这一点,这是一块蛋糕。刚开始使用流程布局。 如果需要GUI构建器,请使用Netbeans。真是不可思议!

对于重叠,它不是重叠,而是重写。您只能在BorderLayout.CENTER(默认位置)中拥有一个面板。 如果你想并排,请getContentPane().setLayout(new FlowLayout()); 或者只是add(panel, BorderLayout.SOUTH)

答案 1 :(得分:0)

虽然我不确定你想要的最终结果是什么,但这里有一些我的建议。

在将警告面板添加到JFrame

的代码段中
warningPanel.add(warningLabel);
contentPane.add(warningPanel);
pack(); 

contentPane是JFrame.getContentPane()

返回的容器

默认情况下,JFrame使用BorderLayout,所以,

contentPane.add(<someComponent>)

相同

contentPane.add(<someComponent>, BorderLayout.CENTER)

您也以相同的方式添加mainPanel,并且您不能拥有两个具有相同约束的组件,因此请将warningPanel设置为BorderLayout.NORTH

contentPane.add(warningPanel, BorderLayout.NORTH)

并删除该代码段中对pack()的调用,因为您稍后会在代码中调用它。

希望这有帮助。


PS

至于Eclipse中的GUI构建,Eclipse GUI Builder plugins上的前一个问题可能有用。我不能说有关在Eclipse中使用Swing的教程,但快速谷歌搜索会挖掘this tutorial using the Eclipse Visual Editor project

答案 2 :(得分:0)

运行代码时,我没有看到重叠的窗格。我想知道你是否可以发布你看到的效果的截图。

关于Eclipse中的教程。我建议在Eclipse中使用Windows Builder pro来构建Java GUI。这是一个优秀的产品(免费)和非常好的网站文档。

答案 3 :(得分:0)

是的我看到警告标签重叠了第一行

那是因为你没有指定contentpane的布局。 以下是你如何解决它

contentPane.setLayout(new GridLayout(2,1));

下添加此行
Container contentPane = getContentPane();

我认为您应该将警告面板更改为gridlayout 1和1而不是0和1,因为您仍然有1行和1列

相关问题