我的程序大致如下,但是当线程启动的时候,不能在屏幕上画出东西来。
在frame上添加一个canvas,这个canvas继承Runnable接口,在上面画出动画效果public class myFrame extends JFrame
{
Mycanvas canvas;
public myFrame(String title){
super(title);
canvas=new Mycanvas();
Container container=getContentPane();
setSize(300,300);
container.add(canvas);
setVisible(true);
}
public static void main(String args[])
{
new myFrame("xxx");
}
}public class Mycanvas extends Canvas implemnts Runnable
{
BufferedImage bufferedImage;
Graphics2D g2;
……
public void init(){
bufferedImage=new BufferedImage(canvasWidth,canvasHeight,BufferedImage.TYPE_INT_BGR);
g2=bufferedImage.createGraphics();
……
} public void run(){
……
draw(g2);
repaint();
……
}
public void paint(Graphics g)
{
g.drawImage(bufferedImage,0,0,this);
System.out.println("paint(g) run");//这里不执行,不知道为什么
}
public void update(Graphics g)
{
paint(g);
}
public void draw(Graphics2D g);
{
g2.draw……
}
………………
}
在frame上添加一个canvas,这个canvas继承Runnable接口,在上面画出动画效果public class myFrame extends JFrame
{
Mycanvas canvas;
public myFrame(String title){
super(title);
canvas=new Mycanvas();
Container container=getContentPane();
setSize(300,300);
container.add(canvas);
setVisible(true);
}
public static void main(String args[])
{
new myFrame("xxx");
}
}public class Mycanvas extends Canvas implemnts Runnable
{
BufferedImage bufferedImage;
Graphics2D g2;
……
public void init(){
bufferedImage=new BufferedImage(canvasWidth,canvasHeight,BufferedImage.TYPE_INT_BGR);
g2=bufferedImage.createGraphics();
……
} public void run(){
……
draw(g2);
repaint();
……
}
public void paint(Graphics g)
{
g.drawImage(bufferedImage,0,0,this);
System.out.println("paint(g) run");//这里不执行,不知道为什么
}
public void update(Graphics g)
{
paint(g);
}
public void draw(Graphics2D g);
{
g2.draw……
}
………………
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货