如何向Java应用程序添加倒计时代码?
我最近在学校有一个项目如何向Java应用程序添加倒计时代码?,java,swing,user-interface,jframe,countdown,Java,Swing,User Interface,Jframe,Countdown,我最近在学校有一个项目 创建一个以图像为背景和一些文本框的JavaGUI 第一个文本框只是一条文字,上面写着:下午1点午餐休息 第二个文本框是倒计时计时器。此计时器应在即将到来的休息结束前5分钟出现,休息时间从每秒5:00到0:00分钟倒计时。当达到0:00时,计时器应响应文本(例如“the 演示将很快开始 图像作为背景:完成 短信上写着:下午1点午餐休息:完成 倒计时:我被困在这一点上了。我首先在控制台上编程一个倒计时。但我真的不知道如何将这个倒计时包含到JavaGUI中 你有
- 创建一个以图像为背景和一些文本框的JavaGUI
- 第一个文本框只是一条文字,上面写着:下午1点午餐休息
- 第二个文本框是倒计时计时器。此计时器应在即将到来的休息结束前5分钟出现,休息时间从每秒5:00到0:00分钟倒计时。当达到0:00时,计时器应响应文本(例如“the 演示将很快开始
- 图像作为背景:完成
- 短信上写着:下午1点午餐休息:完成
- 倒计时:我被困在这一点上了。我首先在控制台上编程一个倒计时。但我真的不知道如何将这个倒计时包含到JavaGUI中
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Toolkit;
import javax.swing.JPanel;
import javax.swing.*;
public class Bildhintergrund extends JFrame{
//Background
public Bildhintergrund () {
setTitle(" Bildhintergrund");
setSize(Toolkit.getDefaultToolkit().getScreenSize());
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLayout(new BorderLayout());
setContentPane(new JLabel(new ImageIcon("/path/to/bild.jpg")));
setLayout(new FlowLayout());
JLabel background = new JLabel();
add(background);
//Text
JLabel text = new JLabel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
}
};
;
JPanel panel = new JPanel();
Dimension size = text.getPreferredSize();
getContentPane().add( text );
text.setFont(text.getFont().deriveFont((float) 58));
text.setText("Lunch break at 1pm");
/*text.setAlignmentX(0);
text.setAlignmentY(0);*/
text.setBounds(300, 300, size.width, size.height);
panel.add(text);
panel.setLayout(null);
add(text);
}
public static void main(String[] args) {
new Bildhintergrund();
}
}
这是我的倒计时代码:
{
/*int Time = 5;
String time;
int seconds;
int minutes;*/
int timet= Time * 60; // Convert to seconds
long delay = timet * 1000;
do
{
minutes = timet / 60;
seconds = timet % 60;
time = minutes + ":" + seconds;
System.out.println(GetTimer());
Thread.sleep(1000);
timet = timet - 1;
delay = delay - 1000;
}
while (delay != 0);
System.out.println("Another topic will follow");
}
public static String GetTimer()
{
return time;
}
}
您可以使用
javax.swing.Timer
如下示例:
javax.swing.Timer timer = new javax.swing.Timer(1000/*timer delay between calling ActionListener.actionPerformed(ActionEvent e) (in milliseconds)*/, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Second over!!!");
//put your code here
}
});
timer.setRepeats(true);//makes timer repeats forever (or until call timer.stop() method)
timer.start();
第一步:你几乎不应该真的倒计时。相反,计算并存储完成时间,并在每次勾选/刷新时计算剩余时间。1)不要标记IDE。这与手头的问题无关。(如果从同一代码的两个IDE获得不同的结果,您就会知道这是相关的。)2)标记,因为它与问题非常相关。3) 为了更快地获得更好的帮助,请添加或。移除所有不必要的粗糙背景和其他已成功完成的背景。仅显示执行倒计时的尝试。4) 使用缩进代码行和代码块的逻辑和一致形式。缩进是。。。。旨在使代码流更易于遵循!大多数IDE都有专门用于格式化代码的键盘快捷键。5) 请学习常见Java命名法(命名约定-例如
EachWordUpperCaseClass
,firstWordLowerCaseMethod()
,firstWordLowerCaseAttribute
,除非它是大写常量
),并始终如一地使用它。谢谢您的评论!我是堆栈溢出方面的新手,请查看@MadProgrammer在问题中的答案