gpt4 book ai didi

java - 如何让JButton打开不同的框架?

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

我创建了 2 个 JButton,但都打开同一个文件,如何让第二个按钮打开另一个文件......................... ...................................................... ...................................................... ………………

//Starting Page

import javax.swing.*;
import java.awt.event.*;
import java.awt. *;
import java.io.*;


public class AddressBook implements ActionListener // Create a new class Address Book
{
JFrame Start=new JFrame("Address Book"); // Set name of Frame
JButton Open; // Set new button
JButton Second;
{
Open=new JButton("OPEN"); // set name of button
Second=new JButton("Second");
Start.setSize(500,600); // set size of frame
Start.add(new JLabel(new ImageIcon("backgroundforlab.jpg"))); // add background picture
Start.setVisible(true);
Start.setLayout(null);
Start.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
Start.getContentPane().add(Open); //Make button visible
Start.getContentPane().add(Second);
Open.setBounds(100,385,295,88);
Second.setBounds(50,160,150,44); // set size of button
Open.addActionListener(this);
Second.addActionListener(this);

}

public void actionPerformed(ActionEvent e)
{
Start.dispose(); // When button is clicked close frame and open mainMenu
mainMenu A=new mainMenu();
}

public static void main(String ag[])
{
AddressBook A=new AddressBook(); // run class AddressBook
}


}

最佳答案

你可以...

为按钮使用单独的 ActionListener

Open.addActionListener(new OpenActionListener());
Second.addActionListener(new SecondActionListener());

您需要提供 ActionListener 的实现作为附加类

这可能是首选方法之一,因为它将操作的功能/责任隔离到单个类,但它确实创建了一堆小类。

你可以..

改用匿名类...

Open.addActionListener(new ActionListener() {
@Overrride
public void actionPerformed(ActionEvent e) {
//...
}
});

这和之前的思路基本一样,但是不需要单独的类来管理

你可以...

使用actionCommand属性来标识按钮

Open.setActionCommand("open");
Second.setActionCommand("second");

//...

public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if ("open".equals(command)) {
//...
} else if ("second".equals(command)) {
//...
}
}

如果您有许多重复操作的按钮(例如菜单和工具栏按钮),这会很好

你可以...

使用source属性来标识按钮

public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == open) {
//...
} else if (source == second) {
//...
}
}

只有当 ActionListener 能够访问按钮的实际引用时,这才有效。这使得它的使用受到限制,特别是因为有更好的解决方案可用

您还应该看看:

了解更多细节和想法

关于java - 如何让JButton打开不同的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48198731/

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