【问题标题】:invalid method declaration, return type required, on a GUIGUI 上的方法声明无效,需要返回类型
【发布时间】:2021-01-26 19:32:42
【问题描述】:

所以我尝试制作一个简单的 GUI,当您单击其中的按钮时它会上升一个。但是,当我尝试运行测试 GUI 时出现此错误:Error. 这是代码

import javax.swing.JFrame;
import javax.swing.BorderFactory;
import javax.swing.JPanel;


public class Main {

public GUI() {

  JFrame frame = new JFrame();
  JPanel panel = new JPanel();
  panel.setBorder(borderFactory.createEmptyBorder(30, 30, 10, 30));
  panel.setLayout(new GridLayout(0, 1));

  frame.add(panel, BorderLayout.CENTER);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setTitle("Clicks");
  frame.pack();
  frame.setVisible(true);

}

  public static void main(String[] args) {

    new GUI();

  }
}

【问题讨论】:

  • 哪一行有错误?
  • 第 8 行出现错误,如果您想查看完整的内容,我已链接图像
  • public void GUI() 放入方法中。应该可以解决问题
  • 请不要链接到图像,只需将错误剪切并粘贴到您的问题中即可。还要指出哪一行是“8”,我们不一定会看到与您相同的代码(因为 SO 可能会以不同的方式重新格式化您的代码)。
  • 您的错误表明方法声明中缺少返回类型。 Method 的返回类型是强制性的。如果您不返回任何内容,请使用 void 类型。如果您不想指定任何返回类型,请改用构造函数。

标签: java swing return


【解决方案1】:
public class Main {

public GUI() {

GUI 似乎打算用作构造函数,并且构造函数必须与类同名。但是GUIMain 都不是类/构造函数的好的描述性名称。该名称应该描述该类的实际情况。所以这里的东西可能不仅更好,而且应该适用于这种情况。

public class ClicksGUI {

public ClicksGUI() {

请注意,如果更改类/构造函数的名称,main 方法中的引用也需要更改以反映这一点。

【讨论】:

    【解决方案2】:

    添加 void 作为您的 GUI 方法的返回类型

    public class Main {
    
    public static void GUI() {
    .....
    }
    }
    

    并将其作为 main() 方法中的方法调用。

    public static void main(String[] args) {
    
        GUI();
    
      }
    

    Java 需要方法的返回类型。如果您不想指定返回类型,请改用构造函数。

    【讨论】:

      【解决方案3】:

      如果你想让GUI 成为一个函数,你必须指定一个return type(我想你需要void),并像普通函数一样调用它,而不是创建它的对象:

      public class Main {
      
      public static void GUI() {
      
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.setBorder(borderFactory.createEmptyBorder(30, 30, 10, 30));
        panel.setLayout(new GridLayout(0, 1));
      
        frame.add(panel, BorderLayout.CENTER);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("Clicks");
        frame.pack();
        frame.setVisible(true);
      
      }
      
        public static void main(String[] args) {
      
          GUI();
      
        }
      }
      

      【讨论】:

      • GUI()Main 类中的一个方法。不会将GUI 作为类返回类型抛出错误。 ?
      • 如果GUI 是一种方法,你想用new GUI(); 做什么
      猜你喜欢
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多