只需要一个show(),就这么简单

来源:互联网 发布:淘宝客网 编辑:程序博客网 时间:2024/05/09 05:02

昨天变成遇到了一个小困难,心情不好。

我的目标:

首先有一个JFrame,JFrame上排列了两个JPanel,上面的ControlPanel包含一个Slider,下面的ImageViewPanel包含一个ScrollPane,Slider和ScrollPane公用一个Model,这样,两者就可以同步变化。 ScrollPane的ViewPort设为一个JPanel,JPanel放置了一个贴了一个用ImageIcon初始化了的JLabel。

结果打进程序以后运行,JFrame出来了,却是一片空白,只有当我改变了JFrame的大小后,两个JPanel才显示出来,当然也包括ImageView上面的Image。为什么!为什么!为什么!心情便烦躁,想起了几年前开始编程,净遇上这样的问题,不知应该从何处着手解决,身边也没有一个可以请教的。几年前的不堪经历,让我这几年都有心理障碍,害怕编程,好在这几年念书编程的机会也不多,自己业余时间更是不愿去碰。现在,赶鸭子上架不得不去思考了。

我分析,可能有两个原因:

一,图像的装载有问题,就是ImageIcon上贴的那张图片装载太慢,必须用MediaTracker来监视图片完全装载完毕。不过,为什么上面那个面板也不显示呢?

二,必须在哪处强制重新布置构件。很可能使这种原因!

我尝试:

一,引入了MediaTracker监视图片装载,问题没有解决

二,在许多地方,如ImageView的构造函数,JFrame的构造函数里调用validate(), revalidate(), repain()等等,还没有解决。

三,我在main()函数里,简单的调用JFrame实例的show(),问题解决,就这么简单。

心情好愉快,虽然是别人不值一晒得小问题,但却让我这个笨鲶鱼困扰很久,解决了,成功路上第一步,啦啦啦啦啦!!

 

原创粉丝点击