62,614
社区成员
发帖
与我相关
我的任务
分享
package test;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Stroke;
import javax.swing.JFrame;
import javax.swing.JPanel;
class TestPanel extends JPanel{
private int x = 100;
public TestPanel() {
new Thread(){
public void run() {
try {
//循环改变x的值
while (true) {
Thread.sleep(100);
x++;
repaint();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
//重写此方法,第一次生成该JPanel以及每次调用repaint()的时候会调用此方法
public void paintComponent(Graphics g) {
super.paintComponent(g);
Stroke stroke = new BasicStroke(2.0f);
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(stroke);
// 绘制(x,100)到(x,200)的线段
g2.drawLine(x, 100, x,200);
}
}
public class Test extends JFrame {
public static void main(String[] args) {
JFrame main = new Test();
JPanel panel = new TestPanel();
main.setContentPane(panel);
main.setSize(400,300);
main.setVisible(true);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}