为了账号安全,请及时绑定邮箱和手机立即绑定

使用动作侦听器在文本字段中将双精度显示为整数

使用动作侦听器在文本字段中将双精度显示为整数

倚天杖 2022-10-26 16:28:10
按钮上显示数字的方法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?我希望它保持双倍,但我希望它显示为整数。
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

你可以只使用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;

    }

}

正如我上面提到的,您可以调整格式以满足您的需求。


查看完整回答
反对 回复 2022-10-26
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信