JAVA问题,帮我看一下这个程序,谢谢!! 10

importjavax.swing.*;importjava.awt.*;publicclassLabelTextextendsJFrame{JLabel[]label;... import javax.swing.*;
import java.awt.*;
public class LabelText extends JFrame{
JLabel[] label;
JPanel panel;
Container con;
public LabelText() {
con = getContentPane();
con.setLayout(new FlowLayout());
panel = new JPanel(new FlowLayout());
label = new JLabel[5];
for(int i = 0; i < label.length; i++){
label[i] = new JLabel();
label[i].setSize(20, 10);
label[i].setLocation(20 * i + label[i].getWidth(), 30);
label[i].setBackground(Color.red);
panel.add(label[i]);
}
con.add(panel);
setSize(860, 700);
setVisible(true);
}
public static void main(String args[]){
LabelText lt = new LabelText();
lt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
为什么执行结果是那样
展开
 我来答
hanzsim
2009-11-15 · TA获得超过1540个赞
知道小有建树答主
回答量:922
采纳率:0%
帮助的人:1097万
展开全部
你的JFrame和JPanel用的都是流式布局。在这里很显然JPanel是多余的,因为布局一样,不用这个JPanel也是一样的效果。这不是本质问题。
流式布局下,每个组件的实际显示大小用的是“首选”大小的。当你没有对组件的首选大小进行过设置时,JLabel是按内容设定的。而你的JLabel内容都为空,自然是0大小,当然看不见了。
如果你想以合适的大小显示这些JLabel,要么改变布局,要么设定一下每个JLabel的首选大小就可以了。
设定首选大小的方法是:组件.setPreferredSize(Dimension)
以你的程序来说,就是label[i].setPreferredSize(new Dimension(20,10));
放在循环里。
yzz_ok
2009-11-15
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
那你希望它出什么效果呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式