【发布时间】:2018-09-04 01:16:51
【问题描述】:
我正在制作一个计算三个规则的程序,但我不希望在按下按钮时开始计算,而是在添加 3 个所需值时开始。这是我的程序和代码的图像:
private void calculateActionPerformed(java.awt.event.ActionEvent evt) {
if (field4.getText().isEmpty()) {
field4.setText(null);
field1c = Float.parseFloat(field1.getText());
field2c = Float.parseFloat(field2.getText());
field3c = Float.parseFloat(field3.getText());
float result = (field3c * field2c) / field1c;
String resultfinal = Float.toString(result);
field4.setText(resultfinal);
option = 1;
} else if (field3.getText().isEmpty()) {
field1c = Float.parseFloat(field1.getText());
field2c = Float.parseFloat(field2.getText());
field4c = Float.parseFloat(field4.getText());
float result = (field4c * field1c) / field2c;
String resultfinal = Float.toString(result);
field3.setText(resultfinal);
option = 2;
} else if (field1.getText().isEmpty()) {
field2c = Float.parseFloat(field2.getText());
field3c = Float.parseFloat(field3.getText());
field4c = Float.parseFloat(field4.getText());
float result = (field3c * field2c) / field4c;
String resultfinal = Float.toString(result);
field1.setText(resultfinal);
option = 3;
} else if (field2.getText().isEmpty()) {
field1c = Float.parseFloat(field1.getText());
field3c = Float.parseFloat(field3.getText());
field4c = Float.parseFloat(field4.getText());
float result = (field4c * field1c) / field3c;
String resultfinal = Float.toString(result);
field2.setText(resultfinal);
option = 4;
}
我确定我必须在某处使用线程,但我不确定如何在我的程序中实现它们。
【问题讨论】:
-
您可以使用
FocusListener来监控焦点变化的变化,并决定何时进行计算。您还可以将ActionListener附加到字段 -
这个 GUI 是否使用 Swing、AWT、Java-FX、SWT..?为了尽快获得更好的帮助,请发帖 minimal reproducible example 或 Short, Self Contained, Correct Example。