使用Java写一个动态的窗口,反弹球(可复制完代码直接运行)
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class DynamicPattern extends JPanel implements ActionListener {
int circleX, circleY;
int deltaX = 1, deltaY = 1;
public DynamicPattern() {
Timer timer = new Timer(10, this);
timer.start();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(circleX, circleY, 50, 50);
}
@Override
public void actionPerformed(ActionEvent e) {
circleX += deltaX;
circleY += deltaY;
if (circleX <= 0 || circleX >= getWidth() - 50) {
deltaX = -deltaX;
}
if (circleY <= 0 || circleY >= getHeight() - 50) {
deltaY = -deltaY;
}
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame("Dynamic Pattern");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
DynamicPattern panel = new DynamicPattern();
frame.setContentPane(panel);
frame.setVisible(true);
}
}
效果如图(动态的),如下:碰到边缘则会向相反的方向反弹。