0

好的,所以我为 JFrame 中的主面板设置了一个 BoxLayout 为 Y_AXIS。我尝试将实际的 Frame 设置为设置为 X_AXIS 的 BoxLayout,然后将我的主面板添加到我的 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);
4

3 回答 3

2

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

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

另外,尝试遵循Java Naming Conventions。变量名应以小写字母开头;类名应以大写字母开头。

于 2013-06-04T01:29:23.183 回答
0

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

例如 class Mypanel 扩展 Panel{..... 您将作为包导入

导入单独的guipart.Mypanel;

面板 insertboxlayoutpanel = (Panel)new Mypanel();

或使用完整的分类 JNDI 名称

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

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

于 2013-06-04T01:31:11.690 回答
-2

代码没有问题。您只需要导入一些库,即 import.javax.swing。; 和import.awt。;

于 2015-08-10T00:03:56.210 回答