【发布时间】:2019-05-31 01:53:48
【问题描述】:
我是 java 新手,我想用 3 个单选按钮制作一个简单的程序,一次只选择一个按钮。 我在同一个类中使用 actionListener 制作了相同的程序并且它可以工作,但是当我将 actionListener 移动到另一个类中时我卡住了。
这是我创建窗口的类:
import javax.swing.JRadioButton;
import javax.swing.JFrame;
import java.awt.FlowLayout;;
public class window extends JFrame{
public JRadioButton radio1= new JRadioButton("Salam1");
public JRadioButton radio2= new JRadioButton("Salam2");
public JRadioButton radio3= new JRadioButton("Salam3");
public window(){
super("Title");
setLayout(new FlowLayout());
add(radio1);
add(radio2);
add(radio3);
action acc = new action();
radio1.addActionListener(acc);
radio2.addActionListener(acc);
radio3.addActionListener(acc);
}
}
这是我的 ActionListener 类:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class action implements ActionListener{
window sarma = new window();
public void actionPerformed(ActionEvent event){
if(sarma.radio1.isSelected()){
sarma.radio2.setSelected(false);
sarma.radio3.setSelected(false);
}
if(sarma.radio2.isSelected()){
sarma.radio1.setSelected(false);
sarma.radio3.setSelected(false);
}
if(sarma.radio3.isSelected()){
sarma.radio2.setSelected(false);
sarma.radio1.setSelected(false);
}
}
}
主类
import javax.swing.JFrame;
public class first{
public static void main(String args[]) {
window salam = new window();
salam.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
salam.setSize(500,150);
salam.setResizable(false);
salam.setVisible(true);
}
}
在操作类中创建窗口对象(名为 sarma)后,当我尝试运行程序时,窗口不会打开。 那么,我怎样才能使这个程序工作呢?
【问题讨论】:
-
1) 请学习常见的 Java 命名法(命名约定 - 例如
EachWordUpperCaseClass、firstWordLowerCaseMethod()、firstWordLowerCaseAttribute,除非它是UPPER_CASE_CONSTANT)并始终如一地使用它。 2) 研究ButtonGroup替换ActionListener。它将实现动作侦听器实际尝试实现的一切。
标签: java swing awt actionlistener