为什么Inner JPanel不显示JLabel文本?
我有一个外部的JPanel,和一个内部的JPanel来显示一些具有正确尺寸的文本。但是我不明白为什么它不会显示?
JPanel jp = new JPanel();
jp.setBackground(Color.decode("#ffffff"));
jp.setBounds(0, 35, 400, 315);
JPanel mostInner = new JPanel();
mostInner.setForeground(Color.black);
mostInner.setBounds(207, 5, 190, 240);
jp.add(mostInner);
JLabel jltxt = new JLabel();
jltxt.setText("Test");
mostInner.add(jltxt);
字符串
2条答案
按热度按时间dced5bon1#
同样,最好避免使用
null
布局和setBounds(...)
。虽然null
布局和setBounds()
似乎是Swing新手创建复杂GUI的最简单和最好的方法,但您创建的Swing GUI越多,在使用它们时遇到的困难就越严重。当GUI调整大小时,它们不会重新调整组件的大小,他们是一个皇家女巫,以加强或维护,他们完全失败时,放置在滚动窗格,他们看起来gawd-awful时,在所有平台或屏幕分辨率是从原来的不同。例如,下面的代码创建了这个GUI:
x1c 0d1x的数据
它使用GridLayout将一个JPanel放置在另一个JPanel的右侧。如果我想在不同的相对位置添加更多组件,只需嵌套JPanel即可,每个JPanel都使用自己的布局。
字符串
hs1ihplo2#
当我created a small program,它似乎工作正常:
的数据
字符串