Java中的容器

Java中的图形用户界面又组件构成,例如Button、TextField、Label等都是组件,其中一些特殊的组件称为容器,例如框架(Frame)、面板(Panel)等。容器是组件的容器,各种组件(包括容器)可以通过add()方法添加到容器中。
1.顶层容器
嵌套容器的最外层称为顶层容器。swing中提供了四种顶层容器,分别为JFrame、JApplet、JDialog和JWindow。JFrame是一个带有标题行和控制按钮(最大化/最小化/恢复/关闭)的独立窗口,创建应用程序时需要使用JFrame。创建小应用程序时需要使用JApplet,它被包含在浏览器窗口中。创建对话框使用JDialog。JWindow是一个不带有标题行和控制按钮的窗口,因此通常很少使用。
举个栗子:

public class JFrameDemo {
    public static void main(String[] args){
        JFrame frame = new JFrame("JFrameDemo");
        JButton button = new JButton("Press me");
        //将JButton放到JFrame的中央
        frame.getContentPane().add(button, BorderLayout.CENTER);
        frame.pack();//将Frame设置到合适的大小
        frame.setVisible(true);//显示JFrame
    }
}

执行结果如下:
这里写图片描述

2.内容窗格:

每个顶层容器(JFrame、JApplet、JDialog、JWindow)都有一个内容窗格(ContentPane),实际上,顶层容器除了菜单之内的组件都放在这个内容的窗格中。想要将组件放在内容窗格,可以使用两种方法:一种是通过顶层容器getContenPane()方法获得的内容窗格(getContentPane()方法返回类行为java.awt.Container,仍然为容器)然后将组件添加到内容窗格中,例如:

     Container contentPane = frame.getContentPane();
     contentPane.add(button, BorderLayout.CENTER);

另一种方法是创建一个新的内容窗格取代顶层容器默认的内容窗格。通常的做法是创建一个JPanel的实例,然后将组件添加到JPanel实例中,再通过顶层容器的setContentPane()方法将JPanel实例设置为新的内容窗格,例如:

  JPanel contentPane = new JPanel();
  contentPane.setLayout(new BorderLayout());
  contentPane.add(button, BorderLayout.CENTER);
  frame.setContentPane(contentPane);

3.面板
面板(JPanel)是一种用途广泛的容器,但是与顶层容器不同的是,面板不能独立存在,必须被添加到其他容器内部。面板可以嵌套,由此可以设计出复杂的图形界面。
举个栗子:

public class JFrameDemo {
    public static void main(String[] args){
        JFrame frame = new JFrame("Frame with panel");
        Container contentPane = frame.getContentPane();
        //将JFrame实例的背景设置为蓝绿色
        contentPane.setBackground(Color.CYAN);

        JPanel panel = new JPanel();
        //将JPanel的实例的背景设置为黄色
        panel.setBackground(Color.yellow);

        JButton button = new JButton("Press me");
        //将JButton实例添加到JPanel中
        panel.add(button);

       //将JPanel实例添加到JFrame的南侧
        contentPane.add(panel, BorderLayout.SOUTH);
        frame.setSize(300,200);
        frame.setVisible(true);
    }
}

运行结果如下:
这里写图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值