首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Java应用程序添加倒计时代码?

如何向Java应用程序添加倒计时代码?
EN

Stack Overflow用户
提问于 2020-10-09 14:18:10
回答 1查看 252关注 0票数 2

我最近在学校有一个项目。

  • 创建了一个以图像为背景和一些文本框的Java。

  • 第一个文本框只是一条短信,上面写着:下午1点午休。

第二个文本框

  • 是一个倒计时器。此计时器应在即将到来的休息结束前5分钟出现,每秒钟从5:00下降到0:00分钟。当到达0:00时,计时器应响应文本(例如:“演示很快就会开始”)。

  • 图像作为背景: done

  • 文本,上面写着:下午1点的午休: at

  • 倒计时:我被困在这里了。我先在控制台上编了一个倒数计时器。但是我真的不知道如何将这个倒计时包含到Java .

中。

你有什么意见建议?

这是我的背景代码:

代码语言:javascript
复制
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();
}
        }

这是我的倒计时代码:

代码语言:javascript
复制
  {
    /*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;
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-22 15:01:02

您可以像下面这样使用javax.swing.Timer

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64281853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档