在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毫秒更新窗口的位置,使其向下和向右移动。当窗口到达屏幕边缘时,我们将其重置到初始位置。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Java进度条的动画效果怎样实现