Java---面板组件(Jpanel)1

Java---面板组件(Jpanel)1

存在的原因:

如果是普通的组件布局,用之前讲到的三种布局管理器就可以解决,但是在比较复杂的要求时就需要用到布局管理器的组合使用。比如下图:

Java---面板组件(Jpanel)1_第1张图片

JPanel:面板组件,非顶层容器。

一个界面只能有一个JFrame 窗体组件,但是可以有多个JPpanel面板组件,而且在JPanel上也是可以用FlowLayOut,BorderLayOut,GirdLayOut等各种布局管理器,这样组合使用,可以达到较为复杂的布局效果。

整体的构造:JPanel相当于将整个窗体划分成几个面板,然后在面板中使用布局管理器(管理按钮的布局),如上图,窗体被划分成2个面板,中间的那个是按钮,然后在面板中使用BorderLayOut管理器,然后在面板中加入按钮。

案例:如上图

/*

 * 面板组件:多种布局管理器的组合

 * 6个按钮,2JPanel

 */

 

package com.panhui;

import java.awt.*;

import javax.swing.*;

 

 

public classDemo10_17 extends JFrame{

 

           //定义组件

           

            JPaneljp1,jp2;

            JButtonjb1,jb2,jb3,jb4,jb5,jb6;

    public static void main(String[] args) {

        // TODO Auto-generated method stub

         Demo10_17  demo = newDemo10_17();

       

    }

   

    //构造函数

    public Demo10_17()

    {

        //创建按组件

        //JPanel布局默认的是FlowLayOut

       

        jp1 = new JPanel();

        jp2 = new JPanel();

       

        jb1 = new JButton("西瓜");

        jb2 = new JButton("香蕉");

        jb3 = new JButton("菠萝");

        jb4 = new JButton("苹果");

        jb5 = new JButton("葡萄");

        jb6 = new JButton("柚子");

       

        //设置布局

       

        //将按钮添加到JPanel

        jp1.add(jb1);

        jp1.add(jb2);

        jp2.add(jb3);

        jp2.add(jb4);

        jp2.add(jb5);

 

        //Panel加入JFrame

        this.add(jp1,BorderLayout.NORTH);

        this.add(jp2,BorderLayout.SOUTH);

        this.add(jb6,BorderLayout.CENTER);

       

        //窗体的设置

        this.setTitle("面板组件");

        this.setSize(399, 399);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setLocation(200,200);

       

        //显示

        this.setVisible(true);

       

    }

 

}

结果:Java---面板组件(Jpanel)1_第2张图片

 

 注意事项:

1, JPanel  是JComponent的子类

2, 属于容器类组件,可以加入别的组件

3, 默认布局管理器,流式布局(FlowLayOut)

 

 

几个常用的组件

1, 文本框(JTextFiled)

2, 密码框(JPasswordField)

3, 标签(JLable)

 Java---面板组件(Jpanel)1_第3张图片

 

代码:

package com.panhui;

import java.awt.*;

import javax.swing.*;

 

public classDemo10_17_1 extends JFrame{

 

    //定义组件

    //三个JPanel,三个标签,两个按钮,一个文本框组件,一个密码框组件

    JPaneljp1,jp2,jp3;

    JLabeljlb1,jlb2;

    JButtonjb1,jb2;

    JTextFieldjtf1;

    JPasswordFieldjpf1;

   

    public static void main(String[] args) {

        // TODO Auto-generated method stub

      

        Demo10_17_1  demo10_17_1 = newDemo10_17_1();

    }

   

    //构造函数

    public Demo10_17_1()

    {

        jp1 = new JPanel();

        jp2 = new JPanel();

        jp3 = newJPanel();

       

        jlb1 = new JLabel("管理员");

        jlb2 = new JLabel("   ");

       

       

        jb1 = new JButton("登陆");

        jb2 = new JButton("取消");

       

        //宽度为10

        jtf1 = new JTextField(10);

        jpf1 = new JPasswordField(10);

       

         //设置布局管理器

        this.setLayout(new GridLayout(3,1));

   

        //加入各个组件

        jp1.add(jlb1);

        jp1.add(jtf1);

       

        jp2.add(jlb2);

        jp2.add(jpf1);

       

       

        jp3.add(jb1);

        jp3.add(jb2);

       

        //设置窗口

        this.add(jp1);

        this.add(jp2);

        this.add(jp3);

       

        this.setSize(300, 300);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       

        //显示

        this.setVisible(true);

    }

}

结果:

 

 Java---面板组件(Jpanel)1_第4张图片

 

 

 

你可能感兴趣的:(java)