两个JPanels重叠?

问题描述:

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

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

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

+3

在论坛中发布代码。包含main()方法,以便我们可以执行代码。 – camickr 2011-01-27 01:17:42

+0

警告标签是否应该位于标签和文本字段之上? – 2011-01-27 02:25:41

当你说你想要一个很好的Eclipse日志教程时,你需要一个GUI构建器还是Swing教程? Swing是关于布局的。一旦你明白了,那简直就是小菜一碟。从流布局开始。 如果您需要GUI构建器,请使用Netbeans。真不可思议!

至于重叠,它不是重叠,而是重写。您只能在默认位置BorderLayout.CENTER中有一个面板。 如果你希望他们肩并肩,做getContentPane().setLayout(new FlowLayout()); 或者只是add(panel, BorderLayout.SOUTH)

虽然我不知道你想要的最终结果是什么样子,下面是我的一些建议什么。

在你的警告面板添加到JFrame

warningPanel.add(warningLabel); 
contentPane.add(warningPanel); 
pack(); 

的contentPane是

JFrames默认由JFrame.getContentPane()返回的容器使用BorderLayout的片段,因此,

contentPane.add(<someComponent>)

相同

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

您还添加mainPanel中以同样的方式,你不能有相同的约束两个组件,所以代替warningPanel设置为BorderLayout.NORTH

contentPane.add(warningPanel, BorderLayout.NORTH)

而且还删除通话在代码片段中打包(),因为您稍后在代码中调用它。

希望这会有所帮助。


PS

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

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

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

是的,我看到警告标签在研磨的第一行

那是因为你没有指定你的contentPane的布局。 继承人你如何解决它

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

加入这一行下

Container contentPane = getContentPane(); 

,我想你应该改变你的警告面板网格布局1和1不是0和1,因为你还有1行1列