package cc.mrbird.febs.websocket;
|
import java.awt.Color;
|
import java.awt.Graphics;
|
import java.awt.Graphics2D;
|
import java.awt.RenderingHints;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import javax.swing.JFrame;
|
import javax.swing.JPanel;
|
import javax.swing.Timer;
|
|
public class Ball extends JPanel implements ActionListener {
|
private Timer timer;
|
private int x, y;
|
private int size;
|
|
public Ball() {
|
x = 0;
|
y = 0;
|
size = 20;
|
timer = new Timer(10, this);
|
timer.start();
|
}
|
|
// 重写paintComponent方法,绘制红色的球
|
@Override
|
public void paintComponent(Graphics g) {
|
super.paintComponent(g);
|
Graphics2D g2d = (Graphics2D) g;
|
// 开启抗锯齿
|
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
// 设置颜色为红色
|
g2d.setColor(Color.RED);
|
// 绘制圆形
|
g2d.fillOval(x, y, size, size);
|
}
|
|
// 重写actionPerformed方法,控制球的大小
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
// 如果球的大小小于100,则增加大小
|
if (size < 100) {
|
size++;
|
} else {
|
// 否则减小大小
|
size--;
|
}
|
// 重新绘制
|
repaint();
|
// 控制球的移动
|
x++;
|
if (x > getWidth()) {
|
x = 0;
|
}
|
}
|
|
public static void main(String[] args) {
|
// 创建窗口
|
JFrame frame = new JFrame("Ball");
|
// 添加球
|
frame.add(new Ball());
|
// 设置窗口大小
|
frame.setSize(300, 300);
|
// 显示窗口
|
frame.setVisible(true);
|
// 设置关闭窗口时的操作
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
}
|
}
|