0

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

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

另外,我在哪里可以找到使用 Eclipse 的好的挥杆教程?

4

4 回答 4

0

当你说你想要一个好的 Eclipse Swing 教程时,你想要一个 GUI builder 还是 Swing 教程?Swing 是关于布局的。一旦你把它记下来,它就是小菜一碟。只需从流布局开始。如果您想要 GUI 构建器,请使用 Netbeans。太不可思议了!

至于重叠,不是重叠,而是覆盖。您只能BorderLayout.CENTER在默认位置拥有一个面板。如果你想让它们并排,做getContentPane().setLayout(new FlowLayout()); 或只是add(panel, BorderLayout.SOUTH)

于 2011-01-27T02:31:03.973 回答
0

虽然我不确定您希望最终结果是什么样子,但这里有一些我的建议。

在将警告面板添加到 JFrame 的代码段中

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

contentPane 是 JFrame.getContentPane() 返回的容器

JFrames 默认使用BorderLayout,所以,

contentPane.add(<someComponent>)

等同于

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

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

contentPane.add(warningPanel, BorderLayout.NORTH)

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

希望这可以帮助。


附言

至于 Eclipse 中的 GUI 构建,这个关于Eclipse GUI Builder 插件的问题可能有用。我不能谈论在 Eclipse 中使用 Swing 的教程,但是使用 Eclipse 可视化编辑器项目快速谷歌搜索挖掘本教程

于 2011-01-27T02:36:27.487 回答
0

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

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

于 2011-01-27T02:39:28.940 回答
0

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

那是因为您没有指定内容窗格的布局。这是你如何解决它

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

在下面添加这一行

Container contentPane = getContentPane();

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

于 2013-01-01T07:49:28.987 回答