编译以下awt窗口代码时,编译器报错:import java.awt.*;public class Frame
{
public static void main(String[] args)
{
Frame f = new Frame("Test");
f.setBounds(100, 100, 400, 300);
Button ok = new Button("OK");
ok.setBounds(20, 200, 60, 40);
f.add(ok);
f.setVisible(true);
}
}
4 errors found:
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 7]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:7: cannot find symbol
symbol : constructor Frame(java.lang.String)
location: class Frame
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 8]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:8: cannot find symbol
symbol : method setBounds(int,int,int,int)
location: class Frame
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 11]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:11: cannot find symbol
symbol : method add(java.awt.Button)
location: class Frame
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 12]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:12: cannot find symbol
symbol : method setVisible(boolean)
location: class Frame但是如果把对应的awt改成swing后,相同的代码编译运行正常!import javax.swing.*;public class JFrame
{
public static void main(String[] args)
{
JFrame f = new JFrame("Test");
f.setBounds(100, 100, 400, 300);
JButton ok = new JButton("OK");
ok.setBounds(20, 200, 60, 40);
f.add(ok);
f.setVisible(true);
}
}
为什么会有这种怪异现象呢!?
{
public static void main(String[] args)
{
Frame f = new Frame("Test");
f.setBounds(100, 100, 400, 300);
Button ok = new Button("OK");
ok.setBounds(20, 200, 60, 40);
f.add(ok);
f.setVisible(true);
}
}
4 errors found:
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 7]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:7: cannot find symbol
symbol : constructor Frame(java.lang.String)
location: class Frame
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 8]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:8: cannot find symbol
symbol : method setBounds(int,int,int,int)
location: class Frame
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 11]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:11: cannot find symbol
symbol : method add(java.awt.Button)
location: class Frame
File: C:\Documents and Settings\Administrator\Desktop\Frame.java [line: 12]
Error: C:\Documents and Settings\Administrator\Desktop\Frame.java:12: cannot find symbol
symbol : method setVisible(boolean)
location: class Frame但是如果把对应的awt改成swing后,相同的代码编译运行正常!import javax.swing.*;public class JFrame
{
public static void main(String[] args)
{
JFrame f = new JFrame("Test");
f.setBounds(100, 100, 400, 300);
JButton ok = new JButton("OK");
ok.setBounds(20, 200, 60, 40);
f.add(ok);
f.setVisible(true);
}
}
为什么会有这种怪异现象呢!?
因为你所定义的类名与你所引用的类名冲突,
可以这样修改
import java.awt.*;public class Frame
{
public static void main(String[] args)
{
java.awt.Frame f = new java.awt.Frame("Test");
f.setBounds(100, 100, 400, 300);
Button ok = new Button("OK");
ok.setBounds(20, 200, 60, 40);
f.add(ok);
f.setVisible(true);
}
}