首页 > 代码库 > 学习笔记二十二:GUI(三)

学习笔记二十二:GUI(三)

形成天才的决定因素应该是勤奋。——郭沫若


本讲内容:常用组件


一、面板组件JPanel(非顶层组件)

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

JPanel是JComponent的子类,属于容器类组件,可以加入别的组件,默认是流式布局。

public class Text extends JFrame{
	//定义组件
	JPanel jp1,jp2;
	JButton jb1,jb2,jb3,jb4,jb5;
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//创建组件
		jp1=new JPanel();//JPanel布局默认是FlowLayout
		jp2=new JPanel();
		
		jb1=new JButton("雪梅");
		jb2=new JButton("志豪");
		jb3=new JButton("健美");
		jb4=new JButton("志华");
		jb5=new JButton("晓静");
		
		//增加组件  先将JPanel上的组件添加完毕,再添加JFrame的组件
		jp1.add(jb1); jp1.add(jb2);
		jp2.add(jb3); jp2.add(jb4);
		
		this.add(jp1,BorderLayout.SOUTH);
		this.add(jp2,BorderLayout.NORTH);
		this.add(jb5);
		
		//设置窗体属性
		this.setTitle("布局Layout—小劲");
		this.setLocation(300, 300);
		this.setSize(400,300);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

技术分享


二、文本框(JTextField)、密码框(JPasswordField)、标签(JLable)、按钮(JButton)

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

public class Text extends JFrame{
	//定义组件
	JPanel jp1,jp2,jp3;
	JButton jb1,jb2;
	JLabel jlb1,jlb2;
	JTextField wbk1;
	JPasswordField pwd1;
	
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//创建组件
		jp1=new JPanel();
		jlb1=new JLabel("用户名");
		wbk1=new JTextField(10);
		jp1.add(jlb1);   jp1.add(wbk1);
		
		jp2=new JPanel();
		jlb2=new JLabel("密     码");
		pwd1=new JPasswordField(10);
		jp2.add(jlb2);   jp2.add(pwd1);
		
		jp3=new JPanel();
		jb1=new JButton("登录");
		jb2=new JButton("取消");
		jp3.add(jb1);   jp3.add(jb2);
		 
		this.setLayout(new GridLayout(3,1));
		
		//增加组件  
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		
		//设置窗体属性
		this.setTitle("布局Layout—小劲");
		this.setLocation(300, 300);
		this.setSize(400,300);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

技术分享


三、复选框组件(JCheckBox)、单选框组件(JRadioButton)

注意:同一组单选按钮必须先创建ButtonGroup,然后把单选框组件放入到ButtonGroup中。

public class Text extends JFrame{
	//定义组件
	JPanel jp1,jp2,jp3;
	JButton jb1,jb2;
	JLabel jlb1,jlb2;
	JCheckBox jcb1,jcb2,jcb3;
	JRadioButton jrb1,jrb2;
	ButtonGroup bg1;//把单选按钮放进一个组里
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//创建组件
		jp1=new JPanel();
		jlb1=new JLabel("特长");
		jcb1=new JCheckBox("音乐");
		jcb2=new JCheckBox("体育");
		jcb3=new JCheckBox("文艺");
		jp1.add(jlb1); jp1.add(jcb1); jp1.add(jcb2); jp1.add(jcb3);
		
		jp2=new JPanel();
		jlb2=new JLabel("性别");
		jrb1=new JRadioButton("男");
		jrb2=new JRadioButton("女");
		bg1=new ButtonGroup();
		bg1.add(jrb1); bg1.add(jrb2);//增加进组,使其只能选一个
		jp2.add(jlb2); jp2.add(jrb1); jp2.add(jrb2);//不是把组添加进去
		
		jp3=new JPanel();
		jb1=new JButton("注册");
		jb2=new JButton("取消");
		jp3.add(jb1); jp3.add(jb2);
		
		this.setLayout(new GridLayout(3,1));
		
		//增加组件  
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		
		//设置窗体属性
		this.setTitle("用户注册—小劲");
		this.setLocation(300, 300);
		this.setSize(400,300);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

技术分享


四、下拉框组件(JComboBox)、列表框组件(JList)、滚动窗格组件(JScrollPane)

一般来说,列表框组件+滚动窗格组件是结合使用的

public class Text extends JFrame{
	//定义组件
	JPanel mb1,mb2;
	JLabel bq1,bq2;
	JComboBox xlk;
	JList lb;
	JScrollPane gd;
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//创建组件
		mb1=new JPanel();
		mb2=new JPanel();
		
		bq1=new JLabel("籍贯");
		bq2=new JLabel("学历");
		
		String[] jg={"阳江","天津","上海","重庆"};
		xlk=new JComboBox(jg);
		
		String[] xl={"高中","大专","本科","硕士","博士",};
		lb=new JList(xl);
		gd=new JScrollPane(lb);//滚动条
		lb.setVisibleRowCount(3);//设置显示3个
		
		this.setLayout(new GridLayout(2,1));
		
		//增加组件  
		mb1.add(bq1);  mb1.add(xlk);
		mb2.add(bq2);  mb2.add(gd);//和单选按钮不同,添加滚动组件
		
		this.add(mb1);  this.add(mb2);
		
		//设置窗体属性
		this.setTitle("Layout—小劲");
		this.setLocation(300, 300);
		this.setSize(400,300);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

技术分享


本讲就到这里,Take your time and enjoy it

学习笔记二十二:GUI(三)