0
点赞
收藏
分享

微信扫一扫

java 写倒计时的窗口

_阿瑶 2024-01-23 阅读 14

Java写倒计时窗口

在计算机编程中,倒计时是一种常见的功能需求。倒计时窗口可以用于各种场景,比如游戏倒计时、倒计时器等。本文将介绍如何使用Java编写一个倒计时窗口,并提供相应的代码示例。

倒计时窗口的基本原理

倒计时窗口是一个图形化界面,通常由一个窗口容器和一个显示倒计时的标签组成。其基本原理如下:

  1. 创建一个窗口容器,比如使用Swing或JavaFX库创建一个JFrame或Stage。
  2. 在窗口容器中添加一个显示倒计时的标签,比如使用Swing的JLabel或JavaFX的Label。
  3. 使用定时器(Timer)来不断更新倒计时的值,然后更新标签上的显示内容。

使用Swing库实现倒计时窗口

Swing是Java的一个GUI库,提供了一套丰富的组件和容器,可以方便地创建图形化界面。下面是使用Swing库实现倒计时窗口的代码示例:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;

public class CountdownWindow extends JFrame {
    private JLabel countdownLabel;
    private int remainingTime;

    public CountdownWindow(int totalTime) {
        countdownLabel = new JLabel();
        remainingTime = totalTime;

        Timer timer = new Timer(1000, event -> {
            remainingTime--;
            countdownLabel.setText("Remaining time: " + remainingTime);
            if (remainingTime <= 0) {
                ((Timer) event.getSource()).stop();
                countdownLabel.setText("Time's up!");
            }
        });
        timer.start();

        add(countdownLabel);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 200);
        setVisible(true);
    }

    public static void main(String[] args) {
        new CountdownWindow(60);
    }
}

上述代码首先创建了一个CountdownWindow类,它继承自JFrame,表示倒计时窗口。在构造函数中,我们创建了一个JLabel用于显示倒计时的信息,同时初始化了倒计时的总时间totalTime。接下来,我们使用一个定时器来每秒更新倒计时的值,并在标签上显示出来。当倒计时结束时,定时器停止,并在标签上显示"Time's up!"。

最后,在main方法中创建了一个CountdownWindow对象,传入倒计时的总时间。

使用JavaFX库实现倒计时窗口

JavaFX是Java的另一个GUI库,提供了更现代化和更强大的图形化界面功能。下面是使用JavaFX库实现倒计时窗口的代码示例:

import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class CountdownWindow extends Application {
    private Label countdownLabel;
    private int remainingTime;

    @Override
    public void start(Stage primaryStage) {
        countdownLabel = new Label();
        remainingTime = 60;

        Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(1), event -> {
            remainingTime--;
            countdownLabel.setText("Remaining time: " + remainingTime);
            if (remainingTime <= 0) {
                timeline.stop();
                countdownLabel.setText("Time's up!");
            }
        }));
        timeline.setCycleCount(Timeline.INDEFINITE);
        timeline.play();

        StackPane root = new StackPane(countdownLabel);
        primaryStage.setScene(new Scene(root, 300, 200));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

上述代码首先创建了一个CountdownWindow类,它继承自Application,表示倒计时窗口。在start方法中,我们创建了一个Label用于显示倒计时的信息,并初始化了倒计时的总时间totalTime。接下来,我们使用一个时间轴(Timeline)来每秒更新倒计时的值,并在标签上显示出来。当倒计时结束时,时间轴停止,并在标签上显示"Time's up!"。

最后,在main方法中调用launch方法启动JavaFX应用程序。

总结

通过使用Swing或

举报

相关推荐

js写倒计时

倒计时

秒杀倒计时

登录倒计时

倒计时插件

android倒计时

0 条评论