gpt4 book ai didi

Java 获取时钟更新

转载 作者:行者123 更新时间:2023-12-02 08:03:55 25 4
gpt4 key购买 nike

我正在为学校做一个项目,但我有点陷入困境。我编写了一个显示当前时间的程序,但我不知道如何让它随着时间的变化而更新。如果有人可以帮助我,或者指出我开始的方向,我们将不胜感激。我将在下面发布我到目前为止所写的内容。

import javax.swing.*;
import java.awt.*;
import java.util.*;


public class Project2 extends JFrame{
public static void main(String[] args){
Project2 myFrame = new Project2();
myFrame.pack();
myFrame.setTitle("Digital Clock");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setLocationRelativeTo(null);
myFrame.setVisible(true);


}//main()

public Project2(){
System.out.println(currentTime());
JPanel p1 = new JPanel();
p1.setLayout(new FlowLayout());
JLabel time = new JLabel(currentTime());
time.setFont(new Font("TimesRoman", Font.BOLD, 20));
time.setForeground(Color.blue);
p1.add(time);
this.setLayout(new BorderLayout());
this.add(p1, BorderLayout.CENTER);

}

public String currentTime(){
Calendar calendar = Calendar.getInstance();
int hours = calendar.get(Calendar.HOUR_OF_DAY);
int minutes = calendar.get(Calendar.MINUTE);
int seconds = calendar.get(Calendar.SECOND);
int aP = calendar.get(Calendar.AM_PM);
String currentTime = hours+":"+checkTime(minutes)+":"+checkTime(seconds)+" "+amP(aP);
return currentTime;
}

public String checkTime(int t){
String time1;
if (t < 10){
time1 = ("0"+t);
}
else{
time1 = (""+t);
}
return time1;
}

public String amP(int ap){
String amPm;
if( ap == 0)
amPm = "AM";
else
amPm = "PM";
return amPm;
}



}//Project2

最佳答案

将 JPanel 和 JLabel 声明为全局变量,并在末尾添加以下行构造函数

ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println(currentTime());
time.setText(currentTime());
}
};
Timer t = new Timer(1000, taskPerformer);
t.start();

完整代码如下:

import javax.swing.*;
import javax.swing.Timer;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;

public class DigitalClock extends JFrame {

private JPanel p1;
private JLabel time;

public static void main(String[] args) {
DigitalClock myFrame = new DigitalClock();
myFrame.pack();
myFrame.setTitle("Digital Clock");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setLocationRelativeTo(null);
myFrame.setVisible(true);

}// main()

public DigitalClock() {
System.out.println(currentTime());
p1 = new JPanel();
p1.setLayout(new FlowLayout());
time = new JLabel(currentTime());
time.setFont(new Font("TimesRoman", Font.BOLD, 20));
time.setForeground(Color.blue);
p1.add(time);
this.setLayout(new BorderLayout());
this.add(p1, BorderLayout.CENTER);
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println(currentTime());
time.setText(currentTime());
}
};
Timer t = new Timer(1000, taskPerformer);
t.start();
}

public String currentTime() {
Calendar calendar = Calendar.getInstance();
int hours = calendar.get(Calendar.HOUR_OF_DAY);
int minutes = calendar.get(Calendar.MINUTE);
int seconds = calendar.get(Calendar.SECOND);
int aP = calendar.get(Calendar.AM_PM);
String currentTime = hours + ":" + checkTime(minutes) + ":"
+ checkTime(seconds) + " " + amP(aP);
return currentTime;
}

public String checkTime(int t) {
String time1;
if (t < 10) {
time1 = ("0" + t);
} else {
time1 = ("" + t);
}
return time1;
}

public String amP(int ap) {
String amPm;
if (ap == 0)
amPm = "AM";
else
amPm = "PM";
return amPm;
}

}// Project2

关于Java 获取时钟更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8471665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com