使用动作侦听器在文本字段中显示双精度整数
Displaying double as integer in textfield using action listener
按钮显示数字的方法
class JNumberBtnClick implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
JNumberButton sender= (JNumberButton)arg0.getSource();
textField_1.setText(textField_1.getText()+sender.getNumber());
}
}
按钮
JNumberButton btnNewButton = new JNumberButton(1.0);
btnNewButton.addActionListener(btnClickEvent);
btnNewButton.setNumber(1.0);
btnNewButton.setBounds(20, 52, 89, 23);
frame.getContentPane().add(btnNewButton);
JNumberButton class
import javax.swing.JButton;
public class JNumberButton extends JButton {
double number;
public JNumberButton(double number) {
super(Double.toString(number));
this.number=number;
}
public double getNumber() {
return number;
}
public void setNumber(double number) {
this.number=number;
setText(Integer.toString((int)number));
}
}
这是我使用按钮时的样子。
问题是我必须怎么做才能让它显示 1 而不是 1.0?我希望它保持双精度,但我希望它显示为整数。
你可以直接使用 NumberFormat
class:
String number = NumberFormat.getInstance().format(1.0);
结果将是 1
。
或者,如果您想使用不同的格式,您可以使用 DecimalFormat
:
String number = new DecimalFormat().format(1.0);
如果需要,您可以将模式传递给构造函数。
如果需要,这两种方法也会显示双精度值。如果只想显示整数,可以使用模式 #
。这将导致所有双精度四舍五入为整数:
String number = new DecimalFormat("#").format(1.3);
结果将是 1
。
完整的 JNumberButton
如下所示:
import javax.swing.*;
import java.text.DecimalFormat;
public class JNumberButton extends JButton {
private static final DecimalFormat format = new DecimalFormat("#");
private double number;
public JNumberButton(double number) {
super(format.format(number));
this.number = number;
}
public double getNumber() {
return number;
}
public void setNumber(double number) {
setText(format.format(number));
this.number = number;
}
}
正如我上面提到的,您可以调整格式以满足您的需要。
按钮显示数字的方法
class JNumberBtnClick implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
JNumberButton sender= (JNumberButton)arg0.getSource();
textField_1.setText(textField_1.getText()+sender.getNumber());
}
}
按钮
JNumberButton btnNewButton = new JNumberButton(1.0);
btnNewButton.addActionListener(btnClickEvent);
btnNewButton.setNumber(1.0);
btnNewButton.setBounds(20, 52, 89, 23);
frame.getContentPane().add(btnNewButton);
JNumberButton class
import javax.swing.JButton;
public class JNumberButton extends JButton {
double number;
public JNumberButton(double number) {
super(Double.toString(number));
this.number=number;
}
public double getNumber() {
return number;
}
public void setNumber(double number) {
this.number=number;
setText(Integer.toString((int)number));
}
}
这是我使用按钮时的样子。
问题是我必须怎么做才能让它显示 1 而不是 1.0?我希望它保持双精度,但我希望它显示为整数。
你可以直接使用 NumberFormat
class:
String number = NumberFormat.getInstance().format(1.0);
结果将是 1
。
或者,如果您想使用不同的格式,您可以使用 DecimalFormat
:
String number = new DecimalFormat().format(1.0);
如果需要,您可以将模式传递给构造函数。
如果需要,这两种方法也会显示双精度值。如果只想显示整数,可以使用模式 #
。这将导致所有双精度四舍五入为整数:
String number = new DecimalFormat("#").format(1.3);
结果将是 1
。
完整的 JNumberButton
如下所示:
import javax.swing.*;
import java.text.DecimalFormat;
public class JNumberButton extends JButton {
private static final DecimalFormat format = new DecimalFormat("#");
private double number;
public JNumberButton(double number) {
super(format.format(number));
this.number = number;
}
public double getNumber() {
return number;
}
public void setNumber(double number) {
setText(format.format(number));
this.number = number;
}
}
正如我上面提到的,您可以调整格式以满足您的需要。