我写的第一个GUI小窗口就出现错误了。 求助

来源:百度知道 编辑:UC知道 时间:2024/09/22 04:12:11
import java.awt.*;

public class TestFrame1 {

public static void main(String[] args) {
MyFrame f1 = new MyFrame("helloMyFrame", 500, 500, Color.blue); // A
}

class MyFrame extends Frame {
private Panel p;
MyFrame(String s, int w, int h, Color c) {
super(s);
this.setBounds(100, 100, w, h);
p.setBounds(w/4, h/4, w/2, h/2);
p.setBackground(c);
this.setVisible(true);
}
}
}

A 句报错
请问,是怎么回事啊。我怎么看,A句都是正确的啊。

改成 MyFrame f1 = new TestFrame1().new MyFrame("helloMyFrame", 500, 500, Color.blue);

可以通过编辑了,但运行时抛空指针错误。我崩了。

救我,java2000大哥

class MyFrame extends Frame {

你把这个类放到 TestFrame1 就行了,你不要让他被包含在TestFrame1 里面

另一种方法
MyFrame f1 = new TestFrame1().new MyFrame("helloMyFrame", 500, 500, Color.blue); // A

import java.awt.*;

public class TestFrame1
extends Frame {
private Panel p;
public TestFrame1(String s, int w, int h, Color c) {
super(s);
p = new Panel();
setBounds(100, 100, w, h);
add(p, BorderLayout.CENTER);
p.setBounds(w / 4, h / 4, w / 2, h / 2);
p.setBackground(c);
setVisible(true);
}

public static void main(String[] args) {
TestFrame1 frame = new TestFrame1("helloMyFrame", 500, 500, Color.blue);
}
}
// 测试通过。