因此,我正在尝试制作一个非常基本的应用程序,当您按下按钮时,该应用程序会计数(每秒向0添加一个数字),然后将其显示在标签和文本字段中。由于我使用的是double,因此文本输出看起来像这样,例如:2.34555555555555。我希望它在点后仅显示2个数字。我该怎么办?
这是我的代码,正如我所说的只是一个按钮,标签和文本字段以及一个小的计时器:
public class Frame1 {
private JFrame frame;
private JTextField txtbox1;
double fiz = 1500;
double mpfiz = fiz/60/60;
int secondsPassed = 0;
double penz = 0;
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
secondsPassed++;
penz += mpfiz;
lbpenz.setText("Ennyi: "+ penz);
txtbox1.setText("Ennyi: " + penz);
}};
private JLabel lbpenz;
public void start() {
timer.scheduleAtFixedRate(task, 1000, 1000);
}
public static void main(String[] args) {
Frame1 peldany = new Frame1();
peldany.start();
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
Frame1 window = new Frame1();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Frame1() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
JButton btnStart = new JButton("Start!");
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
start();
}
});
}
}
谢谢。
答案 0 :(得分:2)
尝试以下代码
public void run() {
DecimalFormat df = new DecimalFormat(".##");
secondsPassed++;
penz += mpfiz;
lbpenz.setText("Ennyi: "+ df.format(penz));
txtbox1.setText("Ennyi: " + df.format(penz));
}};