我正在研究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方法的级别检测到问题。 它有什么问题? 谢谢!
答案 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
}