Exception in thread "main" java.lang.IllegalArgumentException: adding a window t
o a container
at java.awt.Container.addImpl(Container.java:1010)
at java.awt.Container.add(Container.java:351)
at ClockFrame.<init>(ClockFrame.java:18)
at ClockFrame.main(ClockFrame.java:26)
Press any key to continue...两个类,ClockPanel.java,ClockFrame.java(调用ClockPanel实例)
ClockPanelimport java.awt.*;
import javax.swing.*;
import java.util.*;public class ClockPanel extends JFrame
{
public ClockPanel()
{
super();
String currentTime=this.getTime();
JLabel time=new JLabel("Time:");
JLabel current=new JLabel(currentTime);
add(time);
add(current);
}
String getTime()
{
String time;
Calendar now =Calendar.getInstance();
int hour=now.get(Calendar.HOUR_OF_DAY);
int minute=now.get(Calendar.MINUTE);
int month=now.get(Calendar.MONTH)+1;
int day=now.get(Calendar.DAY_OF_MONTH);
int year=now.get(Calendar.YEAR);
String monthName="";
switch (month)
{
case(1):
monthName="January";
break;
case(2):
monthName="February";
break;
case(3):
monthName="March";
break;
case(4):
monthName="April";
break;
case(5):
monthName="May";
break;
case(6):
monthName="June";
break;
case(7):
monthName="July";
break;
case(8):
monthName="August";
break;
case(9):
monthName="September";
break;
case(10):
monthName="October";
break;
case(11):
monthName="November";
break;
case(12):
monthName="December";
break;
}
time = monthName + " " + day + ", " + year + " "+hour+":"+minute;
return time;
}
}
ClockFrameimport java.awt.*;
import javax.swing.*;public class ClockFrame extends JFrame
{
public ClockFrame()
{
super("clock");
setSize(225,125);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout flo=new FlowLayout();
setLayout(flo);
ClockPanel time=new ClockPanel();
setVisible(true);
this.add(p);
add(time);
}
public static void main(String[] args)
{
ClockFrame clock=new ClockFrame();
}
}
o a container
at java.awt.Container.addImpl(Container.java:1010)
at java.awt.Container.add(Container.java:351)
at ClockFrame.<init>(ClockFrame.java:18)
at ClockFrame.main(ClockFrame.java:26)
Press any key to continue...两个类,ClockPanel.java,ClockFrame.java(调用ClockPanel实例)
ClockPanelimport java.awt.*;
import javax.swing.*;
import java.util.*;public class ClockPanel extends JFrame
{
public ClockPanel()
{
super();
String currentTime=this.getTime();
JLabel time=new JLabel("Time:");
JLabel current=new JLabel(currentTime);
add(time);
add(current);
}
String getTime()
{
String time;
Calendar now =Calendar.getInstance();
int hour=now.get(Calendar.HOUR_OF_DAY);
int minute=now.get(Calendar.MINUTE);
int month=now.get(Calendar.MONTH)+1;
int day=now.get(Calendar.DAY_OF_MONTH);
int year=now.get(Calendar.YEAR);
String monthName="";
switch (month)
{
case(1):
monthName="January";
break;
case(2):
monthName="February";
break;
case(3):
monthName="March";
break;
case(4):
monthName="April";
break;
case(5):
monthName="May";
break;
case(6):
monthName="June";
break;
case(7):
monthName="July";
break;
case(8):
monthName="August";
break;
case(9):
monthName="September";
break;
case(10):
monthName="October";
break;
case(11):
monthName="November";
break;
case(12):
monthName="December";
break;
}
time = monthName + " " + day + ", " + year + " "+hour+":"+minute;
return time;
}
}
ClockFrameimport java.awt.*;
import javax.swing.*;public class ClockFrame extends JFrame
{
public ClockFrame()
{
super("clock");
setSize(225,125);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout flo=new FlowLayout();
setLayout(flo);
ClockPanel time=new ClockPanel();
setVisible(true);
this.add(p);
add(time);
}
public static void main(String[] args)
{
ClockFrame clock=new ClockFrame();
}
}
报错显示 你在容器里添加窗口
c.add(...); //not this.add(...)