swing面板刷新问题

ws_cc 2014-09-05 02:58:45
背景:一个主面板,主面板里面有多个子面板,主面板上的一个子面板有一个刷新按钮。
需求:点击刷新按钮的时候,刷新另一个子面板。这个字面上就只有一个控件(JLable),背景是一张图片,现在就是要刷新这张图片,这张图片的路径的绝对路径,路径文件夹里面的图片是刷新了,但界面上没刷新,求指导,求刷新原理,谢谢。
...全文
397 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ws_cc 2014-09-16
  • 打赏
  • 举报
回复
唉,自己解决了,还是得靠自己啊! 这边结贴吧。。
ws_cc 2014-09-10
  • 打赏
  • 举报
回复


public class LegendPanel_new extends JPanel {

	private JPanel rootpanel;
	public JLabel iocn;
	
	public JLabel getIocn() {
		return iocn;
	}

	public void setIocn(JLabel iocn) {
		this.iocn = iocn;
	}
	
	public LegendPanel_new() {
		initComponents();
	}

	private void initComponents() {
		rootpanel = new JPanel();
		iocn = new JLabel(new ImageIcon(System.getProperty("user.dir")+"\\images\\LegendImage\\LegendImage.png"));
		rootpanel.add(iocn);
		this.add(rootpanel);
	}



//前面是监听刷新图片.
LegendPanel_new lp = new LegendPanel_new();
lp.setIocn(lp.iocn);


求指教,我这样setIocn不行.
gloomyfish 2014-09-10
  • 打赏
  • 举报
回复
你repaint一百次那个JLabel背景东西也不会变的 你必须调用setIocn或者setBackground然后再刷新才会起作用!
ws_cc 2014-09-10
  • 打赏
  • 举报
回复
我的那个子面板没什么变化,变化的是那个子面板的背景的图片。如:子面板的背景图片路径为:d:/1.jpg,图片变了的同时我想更新子面板的背景的图片。 我用了updateUI、validate、repaint 子面板都没更新,所以我在想是不是其他的问题...................... 我说下子面板的情况吧,子面板上就只有一个jlable,设置了它的背景图片,因为图片的大小不定,而子面板的大小是规定的,所以把jlable放在了JScrollPanel上面,这样的话就会有下来条,再就有一个jpanel来放置这个JScrollPanel,最后把这个jpanel放到主面板上来.现在我在主面板上面有一个监听是更改图片的,就是更改jlable的背景图片,但我要在更改图片的同时来刷新jlable的背景.
lliiqiang 2014-09-09
  • 打赏
  • 举报
回复
在主面板上监听子面板事件,刷新可以用updateUI方法
tyilack_小小黑 2014-09-09
  • 打赏
  • 举报
回复
如果面板有改动比如说调用了

panel.removeAll();
那么用如下语句可以刷新面板

panel.validate();
panel.repaint();
ws_cc 2014-09-05
  • 打赏
  • 举报
回复
没人解答,自己摸索吧。。。
ws_cc 2014-09-05
  • 打赏
  • 举报
回复
问题补充,能说明下刷新原理最好,谢谢啦。

62,614

社区成员

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

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