gpt4 book ai didi

java - Java Menu如何从不同的类调用main方法?

转载 作者:行者123 更新时间:2023-12-01 18:47:47 25 4
gpt4 key购买 nike

我正在为学校项目制作游戏,并尝试从其他包和类中调用main方法,该怎么办?
我在这里有游戏的主要方法:

//Main method I want to call
public static void main(String[] args)
{
Display display = new Display();
JFrame frame = new JFrame();
frame.add(display);
frame.pack();
frame.setTitle("Space Invaders");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
display.start();
}


这是我为菜单创建的代码,为按钮创建了动作侦听器,以启动并运行该类的主方法

    //Menu/button I have created
public class test
{
public test ()
{
frame();
}
public void frame()
{
JFrame f = new JFrame();
f.setVisible(true);
f.setSize(720,720);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
JButton b1 = new JButton(" Action Listener");
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

}
});
p.add(b1);
f.add(p);

}

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

最佳答案

程序中的所有内容都在与用户进行交互的单个main或UI线程下执行。每个程序必须至少有一个线程。该主线程只有一个main方法,您可以在其中概述要执行的任务。在同一线程中拥有另一个主方法是没有意义的,因为一个线程只能有一个执行点。我认为您对类代表什么也感到困惑。类只是描述其类型对象支持的行为/状态的蓝图/模板。例如。 “车辆”对象的类可能包含诸如“ wheels”(车轮有多少个车轮)和“ engine_size”等变量。一个类不会启动单独的线程,除非您在该类中显式创建一个新的Thread,然后该线程才会换句话说,它自己的主要方法或执行点。仅当您有一些费时的繁重任务(例如下载大文件)时才想要,因此您希望在后台执行这些任务,以免阻塞(滞后)UI / Main线程。但是,对于您的用例而言,这是不必要的,因此我将不做更深入的研究。

现在回到您的程序,您已经在测试类中包含了main方法,这是完全错误的。因此,首先删除它,然后剩下的就是在包含原始main方法的主类中实例化您的测试类。然后,在点击侦听器中按下按钮后,您将处理所有逻辑。

//Main methood I want to call
public static void main(String[] args) {
Display display = new Display();
JFrame frame = new JFrame();
frame.add(display);
frame.pack();
frame.setTitle("Space Invaders");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
display.start();
Test test = new Test(); //instantiate your button class here
}


在主要方法中添加了底线后,现在可以将按钮单击的逻辑放入以下方法中。

b1.addActionListener(new ActionListener() 
{
public void actionPerformed(ActionEvent e)
{
//insert your logic here...
}
});


编辑:请确保您的类名称以大写字母开头,以遵守约定。

关于java - Java Menu如何从不同的类调用main方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59795966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com