以下代码是项目的操作监听器。基本上,我有 4 个单选按钮,当我单击其中一个时,我希望它更改屏幕上的变量。当我运行代码时,它只是将所有值加在一起。还有其他方法可以做到这一点吗?
class Calc implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
double base = 0.00;
double options;
double total;
if (Button25.isSelected());
{
base = base + 999.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
if (Button32.isSelected());
{
base = base + 1049.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
if (Button35.isSelected());
{
base = base + 1099.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
if (Button42.isSelected());
{
base = base + 1155.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
}
}
最佳答案
问题是,对于每个 if()
语句,例如 if (Button32.isSelected());,您都有一个 ;
符号位于末尾。这个不应该在那里。这是更正后的代码...
class Calc implements ActionListener {
public void actionPerformed(ActionEvent event){
double base = 0.00;
double options;
double total;
if (Button25.isSelected()){ // changed
base = base + 999.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
else if (Button32.isSelected()){ // changed
base = base + 1049.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
else if (Button35.isSelected()){ // changed
base = base + 1099.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
else if (Button42.isSelected()){ // changed
base = base + 1155.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
}
}
作为替代方案,为什么不获取从 ActionEvent
单击的按钮,然后在 if-else 分支中使用该按钮...
class Calc implements ActionListener {
public void actionPerformed(ActionEvent event){
double base = 0.00;
double options;
double total;
Object clickedObject = event.getSource();
if (clickedObject instanceof JRadioButton){
JRadioButton clickedButton = (JRadioButton)clickedObject;
if (clickedButton == Button25){
base = base + 999.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
else if (clickedButton == Button32){
base = base + 1049.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
else if (clickedButton == Button35){
base = base + 1099.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
else if (clickedButton == Button42){
base = base + 1155.99;
String base2 = Double.toString(base);
lblBaseAns.setText(base2);
}
}
}
}
关于java - Action 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10116590/