【问题标题】:jpanel dont draw a buffered image but the buffered image can be created as filejpanel 不绘制缓冲图像,但缓冲图像可以创建为文件
【发布时间】:2011-02-03 16:15:08
【问题描述】:

您好,我有一个 jpanel 可供使用。从这个 jpanel 我制作缓冲图像并将它们安全到链表中。按下按钮我想为这个缓冲图像设置动画(一个接一个地播放) 问题是 jpanel 不显示缓冲图像,但是当我使用 ImageIO.write 来保护磁盘上的缓冲图像时,我得到了我想要动画的所有图片。请帮助我。

这是我的代码:

public void run(){
 for(int i=0;i`<`cm.animationListe.size();i++){
      b= cm.animationListe.get(i);

      try {
            ImageIO.write( b, "png", new File( "c:/java/circle"+i+".png" ) );

        } catch (IOException e1) {
            e1.printStackTrace();
        }
     try {
            Thread.sleep(1000);
             repaint();

        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }}
 animation = false;
}

public void paintComponent(Graphics g){
  super.paintComponent(g);
  if(animation){
          g.drawImage(b,0, 0,null);
      } 
}

【问题讨论】:

    标签: java swing paintcomponent concurrency


    【解决方案1】:

    Thread.sleep() 导致 GUI 冻结,因此无法重新绘制自己。

    要制作动画,您需要使用 Swing Timer

    【讨论】:

    • SSCCE (pscode.org/sscce.html) 的时间。在代码中生成图片。
    • g.drawImage(b,0, 0,null);我想用这行代码生成图像
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2013-08-21
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多