【Java】-基础-Swing-常用组件

本文将介绍Swing中的一些常用组件,包括面板、按钮组件、列表组件、文本组件。

下来我们先来看一个实例,这是一个可输入用户名和密码的对话框,如图所示:

【Java】-基础-Swing-常用组件_第1张图片

我们可以将这个对话框分为三个部分,即三个面板,JPanel 1、JPanel 2、JPanel 3。

JPanel 1 由标签JLabel“用户名”和文本框JTextField组成。

JPanel 2 由标签JLabel“密码”和密码框JPasswordField组成。

JPanel 3 由两个按钮JButton“登录”和“取消”组成。

编写一个界面的思路如下:

1、定义组件

2、创建组件

3、添加组件

4、把面板添加到JFrame

5、设置窗体大小

6、设置窗体可见

代码如下:

/*
 * 第31讲 常用组件
 */

package com.test1;
import java.awt.*;
import javax.swing.*;

public class Demo8_6 extends JFrame{

	//定义组件
	JPanel jp1,jp2,jp3;//面板
	JLabel jlb1,jlb2;//标签
	JButton jb1,jb2;//按钮
	JTextField jtf1;//文本框
	JPasswordField jpf1;//密码框组件
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Demo8_6 demo8_6=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);
		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);
		
		//把三个面板加入到JFrame
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		
		this.setSize(300,150);//设置窗体大小
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭时的操作
		this.setVisible(true);//设置为可见
		
	}

}


下面我们再介绍一个实例,它是一个包括了单选框和复选框的对话框,效果如图所示:

【Java】-基础-Swing-常用组件_第2张图片

同理,我们也可以将这个对话框分为三个部分,第一部分为JPanel 1,它由JLabel“你喜欢的运动”和复选框JCheckBox组成。

第二部分为JPanel 2,它由JLabel“你的性别”和单选框JRadioButton组成。一定要把jrb1,jrb2放入到一个ButtonGroup中

第三部分为JPanel 3,它由两个单选按钮“注册用户”和“取消注册”组成。

代码如下:

/*
 * 复选框和单选框案例
 * 第31讲 常用组件
 * */

package com.test1;
import java.awt.*;
import javax.swing.*;

public class Demo8_7 extends JFrame{

	//定义
	JPanel jp1,jp2,jp3;//面板
	JLabel jl1,jl2;//标签
	JButton jb1,jb2;//按钮
	JCheckBox jcb1,jcb2,jcb3;//复选
	JRadioButton jrb1,jrb2;//单选
	ButtonGroup bg;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Demo8_7 demo8_7=new Demo8_7();//千万不要忘记创建实例
	}
	
	//构造函数
	public Demo8_7()
	{
		//创建组件
		//创建三个面板
		jp1=new JPanel();
		jp2=new JPanel();
		jp3=new JPanel();
		//创建两个标签
		jl1=new JLabel("你喜欢的运动");
		jl2=new JLabel("你的性别");
		//创建两个按钮
		jb1=new JButton("注册用户");
		jb2=new JButton("取消注册");
		//创建三个复选框
		jcb1=new JCheckBox("足球");
		jcb2=new JCheckBox("篮球");
		jcb3=new JCheckBox("网球");
		//创建两个单选框
		jrb1=new JRadioButton("男");
		jrb2=new JRadioButton("女");
		//一定要把jrb1,jrb2放入到一个ButtonGroup中
		ButtonGroup bg=new ButtonGroup();
		bg.add(jrb1);
		bg.add(jrb2);
		
		//设置布局管理器
		this.setLayout(new GridLayout(3,1));
		
		//添加组件
		//把三个复选框按钮加入到面板1,把标签加入到面板1
		jp1.add(jl1);
		jp1.add(jcb1);
		jp1.add(jcb2);
		jp1.add(jcb3);
		//把标签2和单选框加入到面板2
		jp2.add(jl2);
		jp2.add(jrb1);
		jp2.add(jrb2);
		//把两个按钮加入到面板3
		jp3.add(jb1);
		jp3.add(jb2);
		//把三个面板加入到JFrame中
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		
		this.setSize(300, 150);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}

}


下面,我们引入一个下拉列表框和列表框的实例,如图所示

【Java】-基础-Swing-常用组件_第3张图片

这个对话框我们可以分为两个部分,JPanel 1为下拉列表框JComboBox,它含有标签JLabel“你的籍贯”,还有下拉框JComboBox。

JPanel 2为带有滚动条的列表框JList,它是放在滚动面板JScrollPane中,它还有一个JLabel“旅游地点”。

代码如下:

/*
 * JComboBox/JList/JScrollPane
 * 第31讲 常用组件
 * */
package com.test1;

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

public class Demo8_8 extends JFrame{

		//定义
		JPanel jp1,jp2;
		JLabel jl1,jl2;
		JComboBox jcb1;//下拉列表框
		JList jlist;//列表框
		JScrollPane jsp;//带滚动条的面板
		
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Demo8_8 demo8_8=new Demo8_8();
	}
	
	//构造函数
	public 	Demo8_8()
	{
		jp1=new JPanel();
		jp2=new JPanel();
		
		jl1=new JLabel("你的籍贯");
		jl2=new JLabel("旅游地点");
		
		String []jg={"北京","上海","天津","火星"};//创建一个字符串数组
		jcb1=new JComboBox(jg);//把字符串数组的元素加入到JComboBox中
		
		String []dd={"九寨沟","故宫","长城","天安门"};//创建一个字符串数组
		jlist=new JList(dd);//把字符串数组加入到列表中
		jlist.setVisibleRowCount(2);//设置可见两个选项
		jsp=new JScrollPane(jlist);//把列表加入到有滚动条的面板中
		//设置你希望显示多少个选项
		
		//设置布局
		this.setLayout(new GridLayout(3,1));
		
		this.add(jp1);
		this.add(jp2);
		
		//添加组件
		jp1.add(jl1);
		jp1.add(jcb1);
		
		jp2.add(jl2);
		jp2.add(jsp);
		
		this.setSize(300,300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
}




你可能感兴趣的:(Java)