gpt4 book ai didi

java - 尝试通过单击 Jbutton 从另一个类打开新的 Jframe

转载 作者:行者123 更新时间:2023-12-02 06:59:10 25 4
gpt4 key购买 nike

(我刚刚开始用java编程。)这是我的代码!

Main:

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JFrame;

public class buttons {{


/*Frame creation*/
final JFrame frameKontrast = new JFrame();
frameKontrast.setTitle("Main Menu");
frameKontrast.setSize(500,350);
frameKontrast.setLocationRelativeTo(null);
frameKontrast.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



/*JPanel creation*/
JPanel panel = new JPanel ();
panel.setLayout(new GridLayout(0, 1));




/*Okno dialogowe*/
final JLabel dialog = new JLabel();
dialog.setText("<html>Jestem bardzo długim bezsensownym dialogiem mam nawet kolejną bardzo długą bezsensowną część która istnieje tylko po to, by ten tekst był ow wiele, wiele dłuższy niż wszystkie inne oraz aby zmusić się do napisania skryptu ktory robi enter w tekście. Koniec.</html>");
JMenuBar menuKontrast = new JMenuBar();
frameKontrast.setJMenuBar(menuKontrast);

/*Przyciski wyboru*/
final JButton przyciskb = new JButton();
przyciskb.setText("Exit");



final JButton przyciska = new JButton();
przyciska.setText("Start the game");







/*Rozwijane menu (zadania)*/
JMenu objectives = new JMenu("Objectives");
JMenuItem zad1 = new JMenuItem("Zadanie numer 1");
JMenuItem zad2 = new JMenuItem("Zadanie numer 2");
JMenuItem zad3 = new JMenuItem("Zadanie numer 3");




/*Dołączanie obiektów do GUI*/
panel.add(dialog);
menuKontrast.add(objectives);
objectives.add(zad1);
objectives.add(zad2);
objectives.add(zad3);
ButtonGroup group = new ButtonGroup();
group.add(przyciska);
group.add(przyciskb);
panel.add(przyciska);
panel.add(przyciskb);
frameKontrast.getContentPane().add(panel);
frameKontrast.getContentPane().add(panel);
frameKontrast.setVisible(true);
}};

这是一个我想通过 przyciska 按钮打开的新窗口:

    public class frameKontrastGame {{
{
JFrame frameKontrastGame = new JFrame();
frameKontrastGame.setTitle("Kontrast");
frameKontrastGame.setSize(1000,700);
frameKontrastGame.setLocationRelativeTo(null);
frameKontrastGame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel ();
panel.setLayout(new GridLayout(0, 1));



JLabel dialog = new JLabel();
dialog.setText("<html>Kontrast</html>");
JMenuBar menuKontrast = new JMenuBar();
frameKontrastGame.setJMenuBar(menuKontrast);
frameKontrastGame.setVisible(true);
panel.add(dialog);
frameKontrastGame.getContentPane().add(panel);
frameKontrastGame.getContentPane().add(panel);
frameKontrastGame.setVisible(true);
}}}

我知道这不是最好的代码。它正在发挥作用,我对此很满意。我的问题是我无法使用“this”监听器。我希望有人有一点时间来帮助我解决这个简单的问题。感谢您阅读所有这些内容。

最佳答案

您可以通过键入

将 ActionListener 添加到按钮
przyciska.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent ev) {
new frameKontrastGame();
}
});

(假设您在frameKontraestGame类中编写的代码在其构造函数中启动了一个jframe)

如果您想处理来自多个按钮的操作,那么您可以编写另一个类,例如。 ActionHandler(或者您想给该类起的任何名称)将实现 ActionListener 接口(interface)。然后,在 actionPerformed 函数中,您可以使用 ev.getSource()(ev 是您的 ActionEvent 变量)方法检测预置的按钮。

关于java - 尝试通过单击 Jbutton 从另一个类打开新的 Jframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16883760/

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