【java复习】java界面开发2

面板组件JPanel

为什么会有面板组件?在图形用户界面编程中,如果只是普通的组件布局,只用前面的三种布局管理器就可以解决,但是比较复杂的布局要求时就要使用布局管理器的组合使用,如下图:
这里写图片描述

一个界面只可以有一个JFrame组件但是可以有多个JPanel组件,而JPanel上也可以使用前面介绍的布局管理器,这样组合使用可以达到较复杂的布局效果.

/*
 * 演示JPanel使用,多种布局管理器的使用
 * */
package com.fox.test1;

import java.awt.BorderLayout;

import javax.swing.*;

public class Demo8_5 extends JFrame{
    //1.定义组件
    JPanel jp1 = null;
    JPanel jp2 = null;

    JButton jb1 =null;
    JButton jb2 =null;
    JButton jb3 =null;
    JButton jb4 =null;
    JButton jb5 =null;
    JButton jb6 =null;


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Demo8_5 test = new Demo8_5();
    }
    public Demo8_5() {
        //JPanel默认是流式布局
        jp1 = new JPanel();
        jp2 = new JPanel();

        jb1 = new JButton("西瓜");
        jb2 = new JButton("苹果");
        jb3 = new JButton("荔枝");
        jb4 = new JButton("葡萄");
        jb5 = new JButton("橘子");
        jb6 = new JButton("香蕉");

        //设置布局管理器

        //添加组件
        jp1.add(jb1);
        jp1.add(jb2);

        jp2.add(jb3);
        jp2.add(jb4);
        jp2.add(jb5);

        this.add(jp1,BorderLayout.NORTH);
        this.add(jb6,BorderLayout.CENTER);
        this.add(jp2,BorderLayout.SOUTH);

        //设置组件
        this.setTitle("JPanel的使用演示");//设置标题
        this.setLocation(200, 200);//设置界面起始位置
        this.setSize(400,300);//界面大小
        this.setVisible(true);//显示界面

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时保证jvm虚拟机也退出,关闭时节省系统资源

    }

}

这里写图片描述

用户登录界面

这里写图片描述
布局分析:网格布局,三行一列,每行一个JPanel,然后在jpanel中再放置组件.

package com.fox.test1;

import java.awt.*;

import javax.swing.*;

public class Demo8_6 extends JFrame{
    //定义组件,三个JPanel
    JPanel jp1=null;
    JPanel jp2=null;
    JPanel jp3=null;

    //2个JLabel
    JLabel jlb1=null;
    JLabel jlb2=null;

    //2个JButton
    JButton jb1 =null;//
    JButton jb2 =null;

    //一个文本输入框
    JTextField jtf1=null;
    //一个密码输入框
    JPasswordField jpf =null;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Demo8_6 test = new Demo8_6();
    }
    public Demo8_6() {
        jp1 = new JPanel();
        jp2 = new JPanel();
        jp3 = new JPanel();

        jlb1 = new JLabel("管理员");
        jlb2 = new JLabel("密 码");

        jb1 = new JButton("确认");
        jb2 = new JButton("取消");

        jtf1 = new JTextField(10);
        jpf =new JPasswordField(10);

        //设置布局管理器
        this.setLayout(new GridLayout(3,1));

        jp1.add(jlb1);
        jp1.add(jtf1);

        jp2.add(jlb2);
        jp2.add(jpf);

        jp3.add(jb1);
        jp3.add(jb2);

        //将三个JPanel加入到JFrame中
        this.add(jp1);
        this.add(jp2);
        this.add(jp3);

        //设置组件
        this.setTitle("会员管理系统");//设置标题
        this.setLocation(200, 200);//设置界面起始位置
        this.setSize(300,150);//界面大小
        this.setVisible(true);//显示界面


        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时保证jvm虚拟机也退出,关闭时节省系统资源
    }

}

这里写图片描述

用户注册界面

这里写图片描述

复选框组件和单选框组件
布局分析:网格布局,3行1列,三个JPanel,
第一行JPanel:一个JTextField,一个JCheckBox
第二行JPanel:一个JTextField,一个JRadioButton
第三行两个JButton

package com.fox.test1;

import java.awt.GridLayout;

import javax.swing.*;
import java.awt.*;
public class Demo8_7 extends JFrame{
    //1.定义组件
    JPanel jp1=null;
    JPanel jp2=null;
    JPanel jp3=null;

    JLabel jlb1 =null;
    JCheckBox jcb1 =null;
    JCheckBox jcb2 =null;
    JCheckBox jcb3 =null;

    JLabel jlb2=null;
    //创建按钮组,把两个单选按钮添加到该组
    ButtonGroup btnGroup = null;
    JRadioButton jrb1=null;
    JRadioButton jrb2=null;

    JButton jb1=null;
    JButton jb2=null;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Demo8_7 test = new Demo8_7();
    }
    public Demo8_7() {
        jp1 =new JPanel();
        jp2 =new JPanel();
        jp3 =new JPanel();

        jlb1=new JLabel("你喜欢的运动");
        jcb1=new JCheckBox("足球");
        jcb2=new JCheckBox("篮球");
        jcb3=new JCheckBox("羽毛球");

        jlb2=new JLabel("你的性别");
        btnGroup=new ButtonGroup();
        jrb1= new JRadioButton("男");
        jrb2= new JRadioButton("女");
        btnGroup.add(jrb1);
        btnGroup.add(jrb2);

        jb1= new JButton("注册用户");
        jb2= new JButton("取消注册");



        //设置布局管理器
        this.setLayout(new GridLayout(3,1));

        jp1.add(jlb1);
        jp1.add(jcb1);
        jp1.add(jcb2);
        jp1.add(jcb3);

        jp2.add(jlb2);
        jp2.add(jrb1);
        jp2.add(jrb2);

        jp3.add(jb1);
        jp3.add(jb2);

        //将三个JPanel加入到JFrame中
        this.add(jp1);
        this.add(jp2);
        this.add(jp3);

        //设置组件
        this.setTitle("用户注册界面");//设置标题
        this.setLocation(200, 200);//设置界面起始位置
        this.setSize(300,150);//界面大小
        this.setVisible(true);//显示界面                

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时保证jvm虚拟机也退出,关闭时节省系统资源

    }
}

这里写图片描述

用户调查界面

这里写图片描述

下拉框组件:JComboBox
列表框组件JList
滚动窗格组件JScrollPane

package com.fox.test1;

import java.awt.GridLayout;

import javax.swing.*;

public class Demo8_9 extends JFrame{
    //1.定义组件
    JPanel jp1=null;
    JPanel jp2=null;

    JLabel jlb1 =null;
    JComboBox jcb =null;

    JLabel jlb2 =null;
    JList jl=null;
    JScrollPane jsp =null;


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Demo8_9 test = new Demo8_9();
    }
    public Demo8_9(){
        jp1 =new JPanel();
        jp2 =new JPanel();

        //创建jp1中的组件
        jlb1=new JLabel("你的籍贯是");
        String jg[] = { "山东", "江苏", "安徽", "北京", "上海", "浙江" }; 
        jcb =new JComboBox(jg);




        //创建jp2中的组件
        jlb2=new JLabel("你喜欢去旅游的地区是");
        jl=new JList();
        String dd[]= {"丽江","故宫","天安门","长城"};
        jl.setListData(dd);
        jsp =new JScrollPane(jl);
        jl.setVisibleRowCount(2);

        //设置布局管理器
        this.setLayout(new GridLayout(2,1));

        //添加jp1中的组件
        jp1.add(jlb1);
        jp1.add(jcb);

        //添加jp2中的组件
        jp2.add(jlb2);
        jp2.add(jsp);//只需要添加JScrollPane就可以了不要添加JLsit

        //将三个JPanel加入到JFrame中
        this.add(jp1);
        this.add(jp2);

        //设置组件
        this.setTitle("用户调查界面");//设置标题
        this.setLocation(200, 200);//设置界面起始位置
        this.setSize(300,150);//界面大小
        this.setVisible(true);//显示界面                

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时保证jvm虚拟机也退出,关闭时节省系统资源
    }
}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/yuewen2008/article/details/81634195