关于ImageIcon的问题,动态加载图形

galewithwing 2005-03-21 12:13:22
问题是,我点击列表,选择不同的项,要显示对应的图形,可是图形还是不改变,不自动刷新,
如何处理这个问题?
事件监听:
mylist.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent evt){
String choosedId=(String)myList.getSelectedValue();
tamper=new ImageIcon(images[choosedId]);

}
});
我重载了 paint()方法,
public void paint(Graphics g){
super.paint(g);
Insets insets = getInsets();
myImage.paintIcon(this,g,insets.left,insets.top);
super.validate();
}
却把我的image显示到其他地方,而原来的image还是不变,还在原来位置显示
...全文
209 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yagumo 2005-03-21
  • 打赏
  • 举报
回复
不太明白,tamper跟myImage有什么关联,你贴个完整一点的代码吧.
galewithwing 2005-03-21
  • 打赏
  • 举报
回复
嘿嘿
不用了
问题解决,很简单~!
就是在这个事件代码中,把这个新icon set给他的容器 JLabel就可以
boris_yin 2005-03-21
  • 打赏
  • 举报
回复
建议你改变时将Image移除,然后再创建一个将新图型加在新image上这样就能达到刷新的效果,如果你的image是加在jscorllpane上的话这个最好将整个panel移除,再加入,这样你的滚动条也会刷新。
galewithwing 2005-03-21
  • 打赏
  • 举报
回复
事件监听:
mylist.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent evt){
String choosedId=(String)myList.getSelectedValue();
myImage=new ImageIcon(images[choosedId]);

}
});
我重载了 paint()方法,
public void paint(Graphics g){
super.paint(g);
Insets insets = getInsets();
myImage.paintIcon(this,g,insets.left,insets.top);
super.validate();
}
弄错了,是这样的,没有tamper

62,634

社区成员

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

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