Java GUI方法错误

时间:2017-02-21 12:40:44

标签: java user-interface

我想开始学习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尝试了这个,并显示相同的错误。 什么似乎是问题?

4 个答案:

答案 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代码的方法实际上不是方法而是构造函数。   但是,令我困惑的是为什么构造函数应该与类名相同。

相关问题