(请看下面的更正版)
第一次写博客!!!!!!
最近与其他同学一起写一个简单的项目,本人负责界面设计。
在想为界面加入图片的时候遇到了麻烦。具体麻烦就是说:
当我如图中所示用JPanel,JLabel 加入图片时,每次运行总是不出图片,而只有点击最大/小化才能出现图片
我特别的将图片裁剪到很小,但还是无法显示。
后来,为JPanel设置了一个FlowLayout布局!!!
终于显示了(泪目)!!
=====================和谐===========================
2018/10/24 14:40(更正版)
去年十月份写的博文没想到有这么多的人看.
今天又遇到了这个问题,然后就发现自己的这篇博文写错了。
现在更正一下:首先,显示不出主要是因为一个方法使用的时机不对,就是这个>>setVisible();
这个方法是判断是否让窗口显示的,而当你把这个方法写在添加组件之前的时候,如下图
(没有研究源码,大概也许便是这样)这时候虚拟机便会先执行setVisible()!然后可能也许大概就如同界面会刷新一下,
“啪”刷新出来一个界面,但是这时候界面还没有添加组件,然后就执行了添加组件的方法,添加是添加了,但是我们的setVisible()
已经执行了,没人能给我们刷新组件显示了,所以就出现了这种情况.而当我们将界面最大化/最小化的话,就会执行一个刷新方法
于是,组件就刷新出来了.
综上所述,只要我们把添加组件的方法写在setVisible()方法之前就可以了,换句话说,尽量把setVisible()方法往后放吧!
=====================和谐===========================
2021/05/28 16:34(个人感悟)
今天又看到这篇博客,已经好几年了,17年那年我才大二,当年第一次接触能写出图形的语言就是Java,如果你现在在纠结这个问题的话,你也许也还在学校吧。
但是其实走出学校,真的没有人用Java的这些图形界面。图形界面这个部分你了解一下就行,你现在用Java写一个界面,其实使用其他工具能更快更好的写出来。
Java更多的要去学习框架知识,SSH是我当初学的第一个框架,但是后来发现SSM框架更好一点,然后再往后发现SpringBoot其实更好,而当初学的SSH框架已经忘记的差不多了。
原来自己觉得学东西就要去扣,往深了研究,结果研究了一年的Java的基础,最初学的东西已经忘记的差不多了,唯一让我成长的就是debug的能力。
我还是觉得,找一些框架学习(Java比较新的框架,旧的框架繁琐而且学习代价大)
当然只是个人建议:如果当初的我按照我上面的想法去做,我也不敢想象我会变成什么样,但是框架应该是Java的核心,有时候不细扣一个问题,一个知识点而加快步伐会发现前面有更好的处理这个问题或者知识点的东西,比如你用原始的Java连接数据库并操作和使用框架连接数据库并操作,所花的时间代价就不一样,以前不知道有框架,疯狂研究原始连接,但后来工作上根本就不用原始连接数据库,那你学的东西真的没有作用,当然其实框架底层用的还是原始链接数据库,懂原始连接可以更懂框架。
但是我还是觉得应该先学框架,再去研究这些底层的知识,仁者见仁智者见智吧