线程" main"中的例外情况java.lang.IllegalArgumentException:非法组件位置

时间:2015-07-11 00:15:38

标签: java swing user-interface illegalargumentexception

我正在研究java Media Player的GUI代码。当我尝试运行主类时,我不断收到以下错误消息:

Exception in thread "main" java.lang.IllegalArgumentException: illegalcomponent position
       at java.awt.Container.addImpl(Container.java:1085)
       at java.awt.Container.add(Container.java:465)
       at dj2.gui.ArtistsPane.<init>(ArtistsPane.java:19)
       at dj2.gui.MainFrame.<init>(MainFrame.java:36)
       at dj2.test.GUITest.main(GUITest.java:21)

我认为问题来自我的ArtistsPane Class,因为其他两个错误都是引用它。

以下是我为ArtistsPane使用的代码:

public class ArtistsPane extends JPanel{

    public ArtistsPane(){

       this.setLayout(new FlowLayout());
       add(new TracksAddRemoveToolBar(),FlowLayout.TRAILING);}}

在add方法的级别检测到问题。 它有什么问题? 谢谢!

1 个答案:

答案 0 :(得分:4)

在添加组件时,但在定义布局本身时,不使用FlowLayout.TRAILING,它属于FlowLayout构造函数参数。所以从add方法中删除那些代码。

例如,改变

public class ArtistsPane extends JPanel{

    public ArtistsPane(){

       this.setLayout(new FlowLayout());
       add(new TracksAddRemoveToolBar(),FlowLayout.TRAILING);}}

public class ArtistsPane extends JPanel{

    public ArtistsPane(){    
       setLayout(new FlowLayout(FlowLayout.TRAILING));
       add(new TracksAddRemoveToolBar());
    } // please place your brakcets with care
 }