BoxLayout not working?



我有这段代码,似乎抛出一个IllegalComponentException,我不知道为什么。它可以归结为以下几行代码:

JRadioButton setRed = new JRadioButton(“Red", true);
JRadioButton setBlue = new JRadioButton("Blue", false);
JRadioButton setYellow = new JRadioButton("Yellow", false);
JPanel options = new JPanel();
options.add(setBlue, BoxLayout.Y_AXIS);//error here
options.add(setRed, BoxLayout.Y_AXIS);//and probably here too
options.add(setYellow, BoxLayout.Y_AXIS);//and here

错误如下:

Exception in thread "main" java.lang.IllegalArgumentException: illegal component position
    at java.awt.Container.addImpl(Container.java:1034)
    at java.awt.Container.add(Container.java:406)
    at DrawCanvas.go(DrawCanvas.java:42)
    at DrawCanvas.main(DrawCanvas.java:27)

你的代码没有意义。在向JPanel添加组件时不使用BoxLayout常量,而是在创建BoxLayout对象时使用这些常量,这是您还没有做过的事情。

你需要:

  • 使用适当的BoxLayout常量创建一个BoxLayout对象,并传递一个引用到将使用此布局的容器。
  • 设置JPanel的布局为这个对象
  • 在JPanel 中添加不带常量的组件。
  • 最重要的是,你需要阅读教程,因为很明显,你试图使用这个工具,没有先检查这个重要的资源。你不能猜测这些东西,并期望它工作。

Google: Java BoxLayout tutorial。第一次打击。

相关内容

  • 没有找到相关文章

最新更新