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

按钮上显示数字的方法


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));

}

}

这是我使用按钮时的样子。

http://img3.mukewang.com/6358efbd0001c72c01060070.jpg

问题是我该怎么做才能让它显示 1 而不是 1.0?我希望它保持双倍,但我希望它显示为整数。



倚天杖
浏览 73回答 1
1回答

人到中年有点甜

你可以只使用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;    }}正如我上面提到的,您可以调整格式以满足您的需求。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java