按钮上显示数字的方法
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类
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?我希望它保持两倍,但我希望它显示为整数。
答案 0 :(得分:0)
您可以只使用NumberFormat
类:
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;
}
}
如上所述,您可以调整格式以适合您的需求。