Java中利用Swing构建一个简单的窗口(六)——使用Panel面板作为子容器

前言

如果想要在一个框架中放是个按钮和一个文本域,按钮以网格形式放置,文本域单独占据一行,如果只使用一个单独的容器,是很难达到要求的。最好将窗口分为几块,Panel的作用就是作为一个子容器,把这些按钮都放在Panel里面,然后把Panel放在框架Frame里面就可以了。

效果如下

假设做一个微波炉吧。。。。。
在这里插入图片描述

代码如下:

package Test;

import javax.swing.*;
import java.awt.*;

public class TestFrame extends JFrame{
        public TestFrame(){
            JPanel p1=new JPanel();
            p1.setLayout(new GridLayout(4,3));

            for (int i = 1; i <=9 ; i++) {
                p1.add(new JButton(""+i));
            }
            p1.add(new JButton(""+0));
            p1.add(new JButton("Start"));
            p1.add(new JButton("Stop"));

        

           // JPanel p3=new JPanel(new BorderLayout());
            add(p2,BorderLayout.EAST);
            add(new JLabel("Food to be placed here"),BorderLayout.CENTER);
           // add(p2);
        }

    public static void main(String[] args) {
        TestFrame frame=new TestFrame();
        frame.setTitle("The Front View of a" +
                "Microwave Oven");
        frame.setSize(400,250);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

步骤分解

1.

首先先做一个Panle,布局方式选择GridLayout,设置为四行三列,一共12个格子,放置数字0-9,放一个“Start",一个"Stop”,效果如下
在这里插入图片描述

2.

在最上面设置一行文本框,可以输入文本。这里新增一个Panel,不过是采用BorderLayout的方式,这样的话可以把东区(上面)设置文本框,再加上Center会延伸占据其他空闲空间的特点,把刚才的p1(十二个格子)设为CENTER,效果如下:

在这里插入图片描述

3.

再新建一个Panel,可以叫做p3,也是采用BorderLayout的方式布局,EAST设置为p2,CENTER设置一个新的Label,里面写一行文字即可。效果如下:
在这里插入图片描述

不过因为JFrame的默认布局是BorderLayout,所以无需使用p3,直接在add方法中添加布局位置即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值