我需要一个有2个按钮的Java程序,第一个激活,另一个不激活。在第一个上单击它会激活另一个,在另一个上则禁用第一个。
使用addActionListener
事件
jButton1.addActionListener((ActionEvent e) -> {
jButton2.setEnabled(true);
this.setEnabled(false);
});
jButton2.addActionListener((ActionEvent e) -> {
jButton1.setEnabled(true);
this.setEnabled(false);
});
Swing有那个。它们称为ButtonGroups
。在Java教程的ButtonGroups中进行检查。
这里是使用单选按钮的一个非常小的示例。它所做的只是演示您正在描述的功能。它可以处理无限数量的按钮。如果需要,您甚至可以从一开始就将其设置为开启。
public class ButtonGroupsDemo extends JPanel {
JFrame frame = new JFrame();
public static void main(String[] args) {
new ButtonGroupsDemo();
}
public ButtonGroupsDemo() {
frame.add(this);
setPreferredSize(new Dimension(200,100));
JRadioButton button1 = new JRadioButton();
JRadioButton button2 = new JRadioButton();
ButtonGroup b = new ButtonGroup();
b.add(button1);
b.add(button2);
add(button1);
add(button2);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
[正如其他人所提到的,Java有一些内部类来处理切换(特别是ButtonGroup
),但是也可以手动完成...这是如何做的:
ButtonGroup