我已经使用swing和ActionListener在Java中创建了一个程序,该程序只是将km转换为英里,反之亦然。在actionPerformed上,我试图将值返回到输出变量,但无法在JTextArea中获取该值。 下面的代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Converter extends JFrame implements ActionListener {
JLabel label = new JLabel("Distance : ");
JTextField input = new JTextField(10);
JButton button = new JButton("Convert");
JTextArea output = new JTextArea(10,15);
CheckboxGroup cbg = new CheckboxGroup();
Checkbox cb1 = new Checkbox("Convert MILES to KM", cbg, true);
Checkbox cb2 = new Checkbox("Convert KM to MILES", cbg, false);
public static void main(String args[]){
Converter s = new Converter();
s.setVisible(true);
}
public Converter(){
setLayout(null);
setSize(300,400);
//left-down-width-hegiht
cb1.setBounds(60,30,150,30);
cb2.setBounds(60,60,150,30);
label.setBounds(30,90,120,30);
input.setBounds(90,95,170,20);
button.setBounds(100,130,90,30);
output.setBounds(45,168,200,165);
add(cb1);
add(cb2);
add(label);
add(input);
add(button);
add(output);
}
public void actionPerformed(ActionEvent e){
if (cb1 .equals(true) ) {
if (e.getSource() == button ){
double d = Double.parseDouble(input.getText());
double d2 = d* 0.62;
String str2 = String.valueOf(d2);
output.setText(str2);
}
else {
}
}
}
}
答案 0 :(得分:2)
2件事:
复选框上的复选框错误。应该是:
if (cb1.getState()) {...}
您必须在按钮中注册动作监听器:在构造函数中添加:
button.addActionListener(this);