日期:2014-05-20  浏览次数:20823 次

JLabel无法显示
jpanel.add(new JLabel());可以显示标签
但是换成 JLabel jl=new JLabel();
         jpanel.add(jl);
就不可以显示了,求人解答,这真是个蛋疼的问题!!

------解决方案--------------------
楼主的代码有以下几个需要注意的问题:

一、控件重复 add
你的代码中有两次调用了 north.add(mini); 这句话
相当于同一个控件被重复两次添加到同一个面板上
其实这样是无法实现添加两个控件的效果的
最终只能有一个 mini 存在于这个面板上
如果一定要这么写,应该这样写:
JLabel mini = new JLabel("mini");
north.add(easy);
north.add(mini);
north.add(abnormal);

mini = new JLabel("mini");
north.add(mini);

二、重载了重要的父类方法,导致 JFrame 无法正确的展现
你的类中有这样两个方法:
public int getWidth()
public int getHeight()
它们看起来人畜无害,只是你一个内部变量的 get 方法
其实你却没有意识到,他们覆盖了父类中的同名方法
造成 JFrame 无法正确获得窗体的大小进行展示
再者,既然你这两个成员变量是——静态,公共的,何必写 get、set 方法?