【问题标题】:The main method isn't found in my GUI class在我的 GUI 类中找不到主要方法
【发布时间】:2020-10-26 02:12:21
【问题描述】:

我已经组装了一个基本的 GUI,但调试器说没有 main 方法,即使有一个 static void main(String[] args) 这是我的代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GUI implements ActionListener {

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

    public GUI() {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        JButton button = new JButton(String.valueOf(Game.Compounds));
        button.addActionListener(this);

        panel.setBorder(BorderFactory.createEmptyBorder(30, 30, 10, 30));
        panel.setLayout(new GridLayout(0, 1));
        panel.add(button);

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

    public void actionPerformed(ActionEvent e) {
        Game.Compounds = Game.Compounds + Game.CPC;
    }
}

有什么问题

【问题讨论】:

  • main() 必须是公开的。

标签: java user-interface main-method


【解决方案1】:

您错过了“公共”修饰符。 main方法的签名是:public static void main(String [] args)

【讨论】:

    【解决方案2】:

    java总是搜索main函数来启动应用程序。

    但你犯了一个小错误,main 应该是公开的,所以像这样更改声明public static void main(String[] args)

    修改你的代码如下:

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class GUI implements ActionListener {
    
       public static void main(String[] args) {
            new GUI();
        }
    
        public GUI() {
            JFrame frame = new JFrame();
            JPanel panel = new JPanel();
            JButton button = new JButton(String.valueOf(Game.Compounds));
            button.addActionListener(this);
    
            panel.setBorder(BorderFactory.createEmptyBorder(30, 30, 10, 30));
            panel.setLayout(new GridLayout(0, 1));
            panel.add(button);
    
            frame.add(panel, BorderLayout.CENTER);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setTitle("GUI");
            frame.pack();
            frame.setVisible(true);
        }
    
        public void actionPerformed(ActionEvent e) {
            Game.Compounds = Game.Compounds + Game.CPC;
        }
    }
    

    【讨论】:

      【解决方案3】:

      但如果你不指定任何东西,它应该由 def 公开

      【讨论】:

      • 可以是评论。
      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多