Java中setLayout(null)这一段为什么会导致文字消失?

packagechapter13;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classMyJ... package chapter13;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MyJDialog extends JDialog{
public MyJDialog(MyFrame frame){
super(frame, "The 1st JDialog window", true);
Container container = getContentPane();
container.add(new JLabel("C'mon!"));
container.setBackground(new Color(255, 255, 200));
setBounds(120, 120, 100, 120);
}
}

public class MyFrame extends JFrame{

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
public MyFrame(){
Container container = getContentPane();
container.setLayout(null);
JLabel jl = new JLabel("This is a JDialog window");
jl.setHorizontalAlignment(SwingConstants.RIGHT);
jl.setVerticalAlignment(SwingConstants.CENTER);
jl.setForeground(new Color(255, 0, 0));
container.add(jl);
JButton bl = new JButton("Get it!");
bl.setBounds(10, 10, 100, 20);
bl.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new MyJDialog(MyFrame.this).setVisible(true);
}
});
container.add(bl);
container.setBackground(Color.white);
setSize(200, 180);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}

}

如上,"This is a JDialog window"这句并没有出现,即使去掉按钮的代码也不会出现。但是将container.setLayout(null);这段删掉后文字就出现了,求原因。谢谢
展开
 我来答
mzocean
推荐于2018-03-29 · TA获得超过1083个赞
知道小有建树答主
回答量:492
采纳率:33%
帮助的人:462万
展开全部
JFrame默认的Layou为BorderLayout,在BorderLayout中添加组件应该明确方位,比如:
container.add(jl,BorderLayout.CENTER);
container.add(bl,BorderLayout.NORTH);
如果布局为BorderLayout但是使用的是container.add(Component)这个方法,BorderLayout会默认的放在CENTER处。
所以,如果去掉container.setLayout(null);这一句,先加入了jl,有加入了bl,bl把jl覆盖了。
如果按照你上面给出的代码,给JFrame设置的Layout为null,即没有布局,那你如果要加入组件,必须说明组件的大小与位置,否则大小就是0,0,谁都看不到。
希望能帮助到你。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式