内部垂直布局的Java Horizo​​ntal BoxLayout

时间:2013-06-04 00:58:09

标签: java swing layout-manager boxlayout

好的,所以我将一个BoxLayout设置为Y_AXIS,用于我在JFrame中的主面板。我试图将实际的Frame设置为BoxLayout设置为X_AXIS,然后将我的主面板添加到我的JFrame,但是我得到一个java.awt.AWTError说:“BoxLayout无法共享”。有没有其他方法可以使用BoxLayout来实现这个目标?

ComponentPanel.setToolTipText("I go in the FramePanel as well as other of my types aligned up and down");

FramePanel.setLayout(new BoxLayout(FramePanel, BoxLayout.Y_AXIS));
FramePanel.add(ComponentPanel);

Frame.setLayout(new BoxLayout(Frame, BoxLayout.X_AXIS));
Frame.add(FramePanel);

3 个答案:

答案 0 :(得分:2)

使用JFrame的内容面板作为BoxLayout的目标容器:

frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.X_AXIS));

此外,尝试关注Java Naming Conventions。变量名称应以小写字母开头;类名应以大写字母开头。

答案 1 :(得分:0)

BoxLayout在“新BoxLayout”中是“静态的”。 尝试使用类扩展Panel并将Panel放在包文件夹中以更改包层次结构级别以分隔“静态字段值”类变量Boxlayout。

e.g。类Mypanel扩展Panel {..... 您将作为包导入

import separateguipart.Mypanel;

Panel insertboxlayoutpanel =(Panel)new Mypanel();

或使用完整的分类JNDI名称

Panel insertboxlayoutpanel =(Panel)new separateguipart.Mypanel();

insertboxlayoutpanel.setLayout(new BoxLayout(FramePanel,BoxLayout.Y_AXIS));

答案 2 :(得分:-2)

代码没有问题。你只需导入一些import.javax.swing的库。; 和import.awt。;