如何在JavaGUI中格式化计时器文本
这是我的更新代码,我在Java GUI中格式化计时器时遇到了问题如何在JavaGUI中格式化计时器文本,java,swing,user-interface,time,Java,Swing,User Interface,Time,这是我的更新代码,我在Java GUI中格式化计时器时遇到了问题 import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swin
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.border.EmptyBorder;
public class deploy extends JFrame {
private JPanel contentPane;
Timer tm;
Timer tm2;
int i = 0;
int o = 0;
public deploy() {
contentPane = new JPanel();
contentPane.setBackground(Color.DARK_GRAY);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblTimer2 = new JLabel("New label");
lblTimer2.setForeground(Color.WHITE);
lblTimer2.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblTimer2.setBounds(295, 231, 182, 16);
contentPane.add(lblTimer2);
tm2 = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
lblTimer2.setText(Integer.toString(o));
o++;
}
});
JButton btnNewButton = new JButton("Start");
btnNewButton.setBackground(Color.LIGHT_GRAY);
btnNewButton.setForeground(Color.BLUE);
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
tm2.start();
}
});
btnNewButton.setBounds(289, 257, 89, 32);
contentPane.add(btnNewButton);
JButton btnNewButton_1 = new JButton("Stop");
btnNewButton_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
tm2.stop();
}
});
pack();
setVisible(true);
}
public static void main(String[] args) {
new deploy();
}
}
这是我的代码中需要你们帮助的部分。我希望我的lblTimer2将显示格式为“00:00”。但我在这里编写的代码格式为“0”,以此类推。。因为我正在创建一个GUI网吧管理软件,我的GUI的功能是给客户计时,客户完成工作后,时间将停止,它将计算他/她通过账单交易花费的时间。我是编程和使用EclipseNeon for JavaGUI Swing应用程序的新手 尝试将时间格式化为所需格式
Date d = new Date(o * 1000L);
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); // HH for 0-23
df.setTimeZone(TimeZone.getTimeZone("GMT"));
String time = df.format(d);
o++;
请参阅评论:
public class deploy extends JFrame {
private int seconds;
private SimpleDateFormat df;
private boolean isRunning;
private JLabel lblTimer2;
public deploy() {
JPanel contentPane = new JPanel();
contentPane.setBackground(Color.DARK_GRAY);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
//better avoid null layout managers
//contentPane.setLayout(null);
contentPane.setLayout(new BorderLayout());
lblTimer2 = new JLabel();
lblTimer2.setForeground(Color.WHITE);
lblTimer2.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblTimer2.setPreferredSize(new Dimension(100,30));
contentPane.add(lblTimer2,BorderLayout.NORTH);
Timer tm2 = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setTimer();
seconds++;
}
});
JButton btnNewButton = new JButton("Start");
btnNewButton.setBackground(Color.LIGHT_GRAY);
btnNewButton.setForeground(Color.BLUE);
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(isRunning) {
tm2.stop();
btnNewButton.setText("Start");
}else {
tm2.start();
btnNewButton.setText("Stop");
}
isRunning = !isRunning;
}
});
//btnNewButton.setBounds(289, 257, 89, 32);
btnNewButton.setPreferredSize(new Dimension(100,30));
contentPane.add(btnNewButton, BorderLayout.SOUTH);
//based on SANTOSHKUMAR SINGH answer
df = new SimpleDateFormat("HH:mm:ss"); // HH for 0-23
df.setTimeZone(TimeZone.getTimeZone("GMT"));
seconds = 0;
isRunning = false;
setTimer();
pack();
setVisible(true);
}
private void setTimer() {
//based on SANTOSHKUMAR SINGH answer
Date d = new Date(seconds * 1000L);
String time = df.format(d);
lblTimer2.setText(time);
}
public static void main(String[] args) {
new deploy();
}
}
这将帮助你,现在检查谢谢你Santoshkumarsing它有效!感谢@c0der正确地放置您收到的代码..我已经接受了您的答案。我是堆栈溢出的新手。我开始熟悉这个网站了。。无论如何,谢谢你,看到你“不接受”这个问题,也接受了我的问题@SANTOSHKUMARSINGH是正确和有益的。请注意,您也可以对答案进行投票。您好@c0der我还没有特权对他的答案进行投票。虽然这很有帮助。但对我来说,最好的解决方案是你的,所以我接受了。如果我有权投票的话,我也会投票。欢迎加入。请发布@c0der你好我更新了我的帖子。。我希望现在能澄清。。我是编程和堆栈溢出方面的新手。。谢谢你的回复…天哪,它工作了!非常感谢你@但是在我的设计选项卡中发生了一些事情,我可以拖放框架的组件。它试图调整大小,但直到我运行它才起作用,它起作用,但在我停止运行后,我无法编辑其他标签和按钮,甚至无法移动它。JPanel中是否有任何事件发生?您好@c0der我在重置计时器时遇到问题。我需要你的帮助。。我创建了一个按钮,可以在其中重置计时器并使用tm2.restart();但它不起作用。。。