Java 容器上的IllegalArgumentException.add
我创建了一个程序,将有4个类+一个摘要,其中将给出颜色、价格、类型和选项。Java 容器上的IllegalArgumentException.add,java,awt,Java,Awt,我创建了一个程序,将有4个类+一个摘要,其中将给出颜色、价格、类型和选项。 这些课程都很好,但主要的课程给了我一些问题。从错误读取的方式来看,我似乎在容器或其他东西上添加了一个窗口,但我没有看到/理解我的错误 这是我的主类代码: public class VehiclePanelProgram extends JFrame { VehicleColorPanel vcp = new VehicleColorPanel(); VehicleOptionsPanel vop
这些课程都很好,但主要的课程给了我一些问题。从错误读取的方式来看,我似乎在容器或其他东西上添加了一个窗口,但我没有看到/理解我的错误 这是我的主类代码:
public class VehiclePanelProgram extends JFrame
{
VehicleColorPanel vcp = new VehicleColorPanel();
VehicleOptionsPanel vop = new VehicleOptionsPanel(this);
VehicleTypePanel vtp = new VehicleTypePanel(this);
VehiclePricePanel vpp = new VehiclePricePanel();
//It will show a summary of data from the other panels
JPanel summaryPanel = new JPanel();
JButton summaryButton = new JButton("Summary");
public VehiclePanelProgram()
{
Container canvas = getContentPane();
canvas.setLayout( new BorderLayout());
canvas.add(vcp,BorderLayout.CENTER);//Line 23
canvas.add(vop,BorderLayout.EAST);
canvas.add(vpp,BorderLayout.NORTH);
canvas.add(vtp,BorderLayout.WEST);
fixUpSummaryPanel();
canvas.add(summaryPanel, BorderLayout.SOUTH);
this.setSize(600, 350);
this.setTitle(" Vehicle Panel Program ");
this.show();
}//End Program constructor
public void fixUpSummaryPanel()
{
summaryPanel.setLayout( new FlowLayout());
summaryPanel.add(summaryButton);
summaryButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
}//End Action Constructor
});//End ActionListener
}//End SummaryPanel Constructor
public void disableSunroof(){vop.disSunroof();}
public void enableSunroof(){vop.enSunroof();}
public void disableConvertible(){vtp.disCon();}
public void enableConvertible(){vtp.enCon();}
public static void main(String args[])
{
VehiclePanelProgram app = new VehiclePanelProgram();//Line 58
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}//End Main
}//End VehiclePanelProgram
这是我一直得到的结果:
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.checkNotAWindow(Container.java:488)
at java.awt.Container.addImpl(Container.java:1089)
at java.awt.Container.add(Container.java:971)
at vehiclepanelprogram.VehiclePanelProgram.<init>(VehiclePanelProgram.java:23)
at vehiclepanelprogram.VehiclePanelProgram.main(VehiclePanelProgram.java:58)
线程“main”java.lang.IllegalArgumentException中的异常:向容器添加窗口
在java.awt.Container.checkNotAWindow(Container.java:488)
位于java.awt.Container.addImpl(Container.java:1089)
在java.awt.Container.add处(Container.java:971)
在车载程序中。车载程序。(车载程序。java:23)
在vehiclepanelprogram.vehiclepanelprogram.main(vehiclepanelprogram.java:58)
如果需要,我可以为您提供我的其他类。问题是您的类是从Window继承的,它是一个顶级容器,但您正试图将其添加到另一个顶级容器(canvas)。你不允许这样做。车辆颜色面板的定义在哪里?@ScaryWombat我不得不完全重做我的代码,当我做了所有的工作。谢谢你,也许可以删除这个问题。好吧,我想我换了一些东西,我让它工作了。非常感谢。