繁体   English   中英

创建BoxLayout时java.awt.AWTERROR

[英]java.awt.AWTERROR When Creating a BoxLayout

我正在尝试使BoxLayout充满Jlabel和3个单选按钮,并以降序排列。 该程序可以正常编译,但是无法共享错误BoxLayout的错误。 我见过有人说此错误是因为他们试图将其附加到jframe,但是在这种情况下,是给jpanel分配了布局而不是框架。 这是编译窗口的代码段。

JPanel mainPanel = new JPanel();
    mainPanel.setLayout(new BorderLayout());
    JPanel effortButtons = new JPanel();
    JPanel skillButtons = new JPanel();
    effortButtons.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
    skillButtons.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
    effortButtons.add(effortHeader);//this is what gives the error
    effortButtons.add(oneEffort);
    effortButtons.add(twoEffort);
    effortButtons.add(threeEffort);
    skillButtons.add(skillHeader);
    skillButtons.add(oneSkill);
    skillButtons.add(twoSkill);
    skillButtons.add(threeSkill);
    mainPanel.add(effortButtons, BorderLayout.WEST);
    mainPanel.add(skillButtons, BorderLayout.EAST);
    mainPanel.add(studentName, BorderLayout.NORTH);
    mainPanel.add(next, BorderLayout.SOUTH);
    add(mainPanel);
    pack();
// xxxxxxxxxxxxx                         xxxxxxxxx
   effortButtons.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));

您必须将获取布局的组件传递给BoxLayout构造函数。 所以这应该是:

effortButtons.setLayout(new BoxLayout(efforButtons, BoxLayout.Y_AXIS));

同样,对于我们的其他JPanel,请将其更改为:

skillButtons.setLayout(new BoxLayout(skillButtons, BoxLayout.Y_AXIS));

根据BoxLayout API

public BoxLayout(Container target, int axis)
目标-需要布置的容器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM