import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TimerLine extends JPanel{ /**
*
*/
private static final long serialVersionUID = 1L;
public TimerLine(){
this.setSize(300,300);
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
for(int i=0;i<10;i++)
g.drawLine(10, 10*(i+1), 100, 10*(i+1));
}
public static void main(String[] args) {
// TODO Auto-generated method stub JFrame f=new JFrame();
TimerLine tl=new TimerLine();
f.add(tl);
f.setSize(400,400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}}
上面的代码是画10条直线。我想加入一个线程或者是Timer类。控制这个程序在画了一条线以后间隔几秒再画下一条。可是画线的话需要一个参数g,run方法里不能传入参数,该如何解决呢?求解!!
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TimerLine extends JPanel{ /**
*
*/
private static final long serialVersionUID = 1L;
public TimerLine(){
this.setSize(300,300);
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
for(int i=0;i<10;i++)
g.drawLine(10, 10*(i+1), 100, 10*(i+1));
}
public static void main(String[] args) {
// TODO Auto-generated method stub JFrame f=new JFrame();
TimerLine tl=new TimerLine();
f.add(tl);
f.setSize(400,400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}}
上面的代码是画10条直线。我想加入一个线程或者是Timer类。控制这个程序在画了一条线以后间隔几秒再画下一条。可是画线的话需要一个参数g,run方法里不能传入参数,该如何解决呢?求解!!
解决方案 »
- 小弟现在面试工作性选择问题
- 又一个奇怪的问题,
- 关于用Java读文本字典的问题
- jtable更新问题,可以更新jtable里的数据,但是界面显示部正常
- 关于正则表达式问题:有谁用过Matcher类的group()方法没有
- 高分请教GUI问题,Swing高手请进
- 急急急!!!!Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135294976)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
- 高手见笑了 小弟第一个程序 帮忙看看
- Metal显示工具条的问题
- 请看下面代码,我有问题?在线等待。
- 请教 我想打印出开方的那个符号, 即根号, 对应的unicode码是多少呢?
- 一道ACM题wa,前来求助
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;import javax.swing.JFrame;
import javax.swing.JPanel;public class TimerLine extends JPanel implements Runnable {
static Canvas canvas;
private int X;
private int Y;
private int Width;
private int Height; /**
*
*/
// private static final long serialVersionUID = 1L; public TimerLine() { this.setSize(300, 300); } @Override
protected void paintComponent(Graphics g) { // TODO Auto-generated method stub
// for (int i = 0; i < 10; i++) {
// g.drawLine(10, 10 * (i + 1), 100, 10 * (i + 1));
// }
g.drawLine(X, Y, Width, Height);
} public static void main(String[] args) {
// TODO Auto-generated method stub JFrame f = new JFrame();
TimerLine tl = new TimerLine();
canvas = new Canvas();
canvas.setSize(300, 300);
f.add(canvas);
f.add(tl);
f.setSize(400, 400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); new Thread(tl).start();
} @Override
public void run() {
// TODO Auto-generated method stub
Graphics graphics = canvas.getGraphics();
try {
for (int i = 0; i < 10; i++) {
X = 10;
Y = 10 * (i + 1);
Width = 100;
Height = 10 * (i + 1);
paintComponent(graphics);
Thread.sleep(3000);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}