溫馨提示×

java jframe類如何實現窗口動畫

小樊
103
2024-12-08 15:05:21
欄目: 編程語言

在Java中,要實現JFrame窗口動畫,可以使用javax.swing.Timer類來定期更新窗口的位置或大小。以下是一個簡單的示例,展示了如何創建一個帶有窗口動畫的JFrame應用程序:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class WindowAnimation {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> createAnimatedWindow());
    }

    private static void createAnimatedWindow() {
        JFrame frame = new JFrame("Animated JFrame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setLocationRelativeTo(null);

        // 創建一個容器來容納窗口的內容
        Container container = frame.getContentPane();
        container.setLayout(new BorderLayout());

        // 添加一個按鈕作為窗口內容
        JButton button = new JButton("Click me!");
        container.add(button, BorderLayout.CENTER);

        // 設置窗口的初始位置
        frame.setLocation(100, 100);

        // 創建一個定時器,每隔100毫秒更新窗口的位置
        Timer timer = new Timer(100, new ActionListener() {
            int x = 100;
            int y = 100;

            @Override
            public void actionPerformed(ActionEvent e) {
                // 更新窗口的位置
                frame.setLocation(x, y);

                // 增加x和y的值,以便窗口向下和向右移動
                x += 5;
                y += 5;

                // 如果窗口到達屏幕邊緣,重置位置
                if (x + frame.getWidth() >= Toolkit.getDefaultToolkit().getScreenSize().width || y + frame.getHeight() >= Toolkit.getDefaultToolkit().getScreenSize().height) {
                    x = 100;
                    y = 100;
                }
            }
        });

        // 啟動定時器
        timer.start();

        // 設置窗口為可見
        frame.setVisible(true);
    }
}

在這個示例中,我們創建了一個JFrame窗口,并添加了一個按鈕。然后,我們使用Timer類每隔100毫秒更新窗口的位置,使其向下和向右移動。當窗口到達屏幕邊緣時,我們將其重置到初始位置。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女