在Java Swing应用程序中,JTextField
是一个常用的组件,用于接收用户输入的文本。要将 JTextField
中的值存储并传递给另一个类进行计算,可以按照以下步骤操作:
假设我们有两个类:InputForm
和 Calculator
。InputForm
包含一个 JTextField
和一个按钮,用于触发计算;Calculator
负责执行计算逻辑。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class InputForm extends JFrame {
private JTextField textField;
private JButton calculateButton;
public InputForm() {
setTitle("Input Form");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initComponents();
}
private void initComponents() {
textField = new JTextField(20);
calculateButton = new JButton("Calculate");
calculateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String inputText = textField.getText();
Calculator calculator = new Calculator(inputText);
double result = calculator.performCalculation();
JOptionPane.showMessageDialog(InputForm.this, "Result: " + result);
}
});
JPanel panel = new JPanel();
panel.add(textField);
panel.add(calculateButton);
add(panel);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new InputForm().setVisible(true);
}
});
}
}
public class Calculator {
private String input;
public Calculator(String input) {
this.input = input;
}
public double performCalculation() {
// 假设这里进行一些简单的数学计算
try {
return Double.parseDouble(input) * 2; // 示例:将输入值乘以2
} catch (NumberFormatException e) {
return Double.NaN; // 如果输入不是有效的数字,返回NaN
}
}
}
Double.parseDouble
会抛出 NumberFormatException
。可以在 Calculator
类中添加异常处理逻辑,如上所示。SwingUtilities.invokeLater
确保UI更新在EDT中执行。通过这种方式,你可以有效地从 JTextField
获取值,并将其传递给另一个类进行处理,同时保持代码的清晰和模块化。
领取专属 10元无门槛券
手把手带您无忧上云