jComponent中为什么调用repaint不起作用

alexyang1990 2012-12-24 11:38:43

public class GridPanel extends JPanel {

public PicComponent picComponent;
public GridPanel(){

}

public void paintPic() throws IOException{
setLayout(new GridLayout(CategoryPanel.Books.size()/3+1,3));
for(int i = 0;i<CategoryPanel.Books.size();i++){
String url = CategoryPanel.Books.get(i).getUrl();
System.out.println(url);
picComponent = new PicComponent(url);
add(picComponent);
picComponent.repaint();
}
}
}

class PicComponent extends JComponent{
BufferedImage image = new BufferedImage(160, 160, BufferedImage.TYPE_3BYTE_BGR);

public PicComponent(String url) throws IOException{
image = ImageIO.read(new File(url));
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
}
}
...全文
101 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
alexyang1990 2012-12-25
  • 打赏
  • 举报
回复
自己解决了,不是repaint的问题,就算调用paintimmediately进入了paint程序窗口还是不变化,应该已经绘制成功了,但是窗口没刷新,只需要调用validate来刷新一下组件就行了
alexyang1990 2012-12-24
  • 打赏
  • 举报
回复
现在只有改变窗口大小的时候才会重绘图像

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧