gpt4 book ai didi

java - 在程序启动时清除java swing表单的所有文本字段

转载 作者:行者123 更新时间:2023-12-01 16:24:32 24 4
gpt4 key购买 nike

作为使用 netbeans IDE 进行 Java 编程的初学者,我制作了一个货币转换器;我有一个用于“法郎”的文本字段,另一个用于“欧元”的文本字段,一个用于清除两个文本字段的清除按钮,一个转换按钮和一个用于离开窗口的退出按钮。我在转换按钮后面添加了代码,以便在按下按钮时执行转换。然后我遇到了一些问题:当我运行程序并输入要转换的值时,除非我先单击清除按钮然后输入值,否则转换不会发生。现在我的问题是如何阻止程序这样做。或者,如果不可能这样做,有没有办法可以在程序启动时自动清除所有文本字段?感谢您的帮助

以下是程序中处理事件的代码

~ private void   clear_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                             
euro_field.setText(" ");
franc_field.setText(" ");
}

private void quit_buttonActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void convert_buttonActionPerformed(java.awt.event.ActionEvent evt) {
double francVal, euroVal;
String a = franc_field.getText();
String b = euro_field.getText();
if(b.equals(" ") && !a.equals(" ")) {
francVal = Double.parseDouble(franc_field.getText());
euroVal = francVal/660.85;
euro_field.setText(String.valueOf(euroVal));
}
else if(a.equals(" ") && !b.equals(" ")) {
euroVal = Double.parseDouble(euro_field.getText());
francVal = euroVal*660.85;
franc_field.setText(String.valueOf(francVal));
}
}

// Variables declaration - do not modify
private java.awt.Button clear_button;
private java.awt.Button convert_button;
private javax.swing.JTextField euro_field;
private java.awt.Label euro_label;
private javax.swing.JTextField franc_field;
private java.awt.Label franc_label;
private java.awt.Button quit_button;
private java.awt.Label welcome_label;
// End of variables declaration ~

最佳答案

JTextField 为空时,其 getText() 方法返回空字符串,而不是包含单个空格的字符串。因此,方法 convert_buttonActionPerformed() 中的条件永远不会为真,但方法 clear_buttonActionPerformed() 实际上会在 JTextField 中插入一个空格,因此当您调用方法 convert_buttonActionPerformed() after 调用方法 clear_buttonActionPerformed() 则方法 convert_buttonActionPerformed() 中的条件为 true。

将方法 clear_buttonActionPerformed() 更改为以下内容:

private void clear_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                             
euro_field.setText("");
franc_field.setText("");
}

并将方法 convert_buttonActionPerformed() 更改为以下内容:

private void convert_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                               
double francVal, euroVal;
String a = franc_field.getText();
String b = euro_field.getText();
if(b.equals("") && !a.equals("")) {
francVal = Double.parseDouble(franc_field.getText());
euroVal = francVal/660.85;
euro_field.setText(String.valueOf(euroVal));
}
else if(a.equals("") && !b.equals("")) {
euroVal = Double.parseDouble(euro_field.getText());
francVal = euroVal*660.85;
franc_field.setText(String.valueOf(francVal));
}
}

关于java - 在程序启动时清除java swing表单的所有文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62177609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com