我的用户界面中有两个按钮,它们重定向到两个 JFrame
。我试图使如果用户按下按钮一,按钮二将被禁用,如果用户按下按钮二,按钮一将被禁用,这样用户就无法同时打开两个 JFrame
。
import java.awt.*;
import java.awt.event.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class Main extends JFrame {
public Main() {
JPanel panel = new JPanel();
getContentPane().add (panel,BorderLayout.NORTH);
JButton button1 = new JButton("One");
panel.add(button1);
JButton button2 = new JButton("Two");
panel.add(button2);
button1.addActionListener (new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
button2.setEnabled(false);
One f = new One();
f.setSize(350,100);
f.setVisible(true);
}
});
button2.addActionListener (new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
button1.setEnabled(false);
Two fr = new Two();
fr.setSize(350,100);
fr.setVisible(true);
}
});
public void enableButtons()
{
button1.setEnabled(true);
button2.setEnabled(true);
}
}
public static void main(String[] args) {
Main frame = new Main();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
enableButtons();
System.exit(0);
}
});
frame.setSize(300,200);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
}
在按钮一的 ActionListener
中,添加
ButtonTwo.setEnabled(false);
并在按钮二的ActionListener
中添加
ButtonOne.setEnabled(false);
不要忘记添加相应的启用(button.setEnable(true)
),否则您将留下两个禁用的按钮。也许在关闭 JFrames
的事件中。
编辑:
你可以写一个这样的方法
public void enableButtons()
{
button1.setEnabled(true);
button2.setEnabled(true);
}
在 JFrame 关闭时调用此方法。这个tutorial解释 JFrame 关闭事件。
我是一名优秀的程序员,十分优秀!