gpt4 book ai didi

java - 运行全新类的按钮

转载 作者:行者123 更新时间:2023-12-02 22:55:56 26 4
gpt4 key购买 nike

我希望我的按钮运行一个全新的类,该类将在内部执行不同的操作。我不知道这是否可能,因为我真的不擅长java。我的代码目前如下所示:

public class MainMenu {
private class GardenActivities {
public GardenActivities() {
JFrame GardenAct = new JFrame();
GardenAct.setSize(400, 400);
GardenAct.setVisible(true);
}
}

public static void main(String[] args) {
JFrame choice = new JFrame();
choice.setSize(700, 500);
choice.setLocationRelativeTo(null);
choice.setTitle("Seeds");
choice.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(0, 1));
JButton Labora = new JButton();
Labora.setText("Laboratory");
Labora.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
GardenActivities();
}
});

JButton Garden = new JButton();
Garden.setText("Garden");
Garden.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
}
});

choice.getContentPane().add(panel);
ButtonGroup group = new ButtonGroup();
group.add(Garden);
group.add(Labora);
panel.add(Garden);
panel.add(Labora);
choice.setVisible(true);
}
}

就像我说的。我需要一些东西来运行我的 GardenActivities 类,只需按 Garden 按钮即可。

最佳答案

你的代码无法编译,是吗?发生这种情况时,您需要将编译错误与您的问题一起发布,以便我们可以帮助您解决这些问题。

您需要在 GardenActivities() 语句之前添加关键字 new

@Override
public void actionPerformed(ActionEvent ev) {
new GardenActivities(); // here
}

此外,将 GardenActivities 放入其自己的文件中。没有理由将其设为私有(private)内部类,并且有很多理由不这样做。

话虽如此,我建议不要让一个 JFrame 创建并显示另一个 JFrame,因为应用程序通常应该只有一个 JFrame。相反,请考虑使用 CardLayout 交换 JPanel“ View ”,或者如果必须显示不同的窗口,请考虑将第二个依赖窗口显示为模式或非模式对话框。

还有更多未经请求的建议:您的主要方法做得太多了。静态 main 方法中的大部分代码应该放在非静态主 gui 类中,无论它是什么,可能在它的构造函数中,或者在构造函数调用的 initGui() 方法中。 main 方法应该只创建主 gui 类的一个实例,使其可见,仅此而已。

<小时/>

关于:

I don't know if that is even possible cause i'm really bad at java.

继续编写大量代码,大量代码,并继续查看教程和教科书,这种情况将会改变。

关于java - 运行全新类的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345321/

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