我想开始学习java中的GUI。但是,当我尝试将一个简单的JFrame代码从教程网站复制到Textpad时,当我尝试编译它时,有一个错误:
" C:\ Programming \ Java \ Practice GUI \ GUIPractice.java:7:error:无效的方法声明;需要返回类型 public MyFrame(){ ^ 1错误"
当我也从其他网站复制简单的GUI代码时,也会出现这种情况,这似乎是什么问题?我知道方法必须是void或返回类型,但为什么方法没有指定void或者return-type,数据类型?这似乎是其他网站的GUI代码的语法。
以下是代码:
// file: EmptyFrame.java
// Adapted from Core Java, vol.1, by Horstmann & Cornell
import javax.swing.*;
class MyFrame extends JFrame {
public MyFrame() {
setTitle("My Empty Frame");
setSize(300,200); // default size is 0,0
setLocation(10,200); // default is 0,0 (top left corner)
}
public static void main(String[] args) {
JFrame f = new MyFrame();
f.show();
}
}
我使用Netbeans IDE尝试了这个,并显示相同的错误。 什么似乎是问题?
答案 0 :(得分:1)
您的类名为MyFrame,但它位于名为EmptyFrame.java的文件中。他们需要是同一个名字。因为它们不同,所以它认为MyFrame()是一种方法。
答案 1 :(得分:0)
将GUIPractice.java更改为MyFrame.java或将类名和构造函数更改为GUIPractice。
答案 2 :(得分:0)
在每个.java文件中,必须有一个与文件名同名的类,否则将在运行时抛出ClassNotFoundException
。你看到的错误很奇怪。我不知道它为什么抱怨构造函数的返回类型。
只需重命名您的文件,使其与该类名称相同,即MyFrame.java
。您也可以上课public
。
答案 3 :(得分:0)
问题实际上是因为在我将代码复制到Textpad之后,我将类名重命名为GUIPractice以匹配文件名。但是,我不知道包含GUI代码的方法实际上不是方法而是构造函数。 但是,令我困惑的是为什么构造函数应该与类名相同。