JAVA入门到精通-第31讲-常见组件

面板组件-Jpanel

一个JFrame,多个JPanel;
JPanel默认是流布局;FlowLayout;

通过JPanel达到复杂布局的目的;


可以认为是网格布局,有3个JPanel;2个Label;2个按钮;
一个密码框和一个文本输入框;


最终展现出来的还是靠JFrame展现的

网格布局好点,3个JPanel,用流布局,控件往里加;
ButtonGroup按钮组;一组里面只能选择一个;


对单选框管理,就是把它加入到ButtonGroup里面;

单选框也是一个个放进JPanel的;

最后把JPanel全部加入到JFrame里面:

最后,在主函数里面创建对象实例进行构造;


JComboBox:

JScrollPane/JList:
JList:



最大显示的是在JList里,添加是在JScroll;


Swing组件--面板组件
面板组件(JPanel)--介绍
在图形用户界面编程中,如果只是普通的组件布局,我们用前面讲的三种布局管理器就可以解决,但在比较复杂的布局要求时,就需要使用布局管理器的组合使用。
面板组件(JPanel)--使用[Window005.java]
JPanel:面板组件,非顶层容器,一个界面只可以有一个JFrame窗体组件,但可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout、BorderLayout、GirdLayout等各种布局管理器,这样可以组合使用达到较为复杂的布局效果。
xxxxxxxxxx46
1
/**2
* 多种布局管理器,面板组件(JPanel)--使用3
*/4
import java.awt.*;5
import javax.swing.*;6
public class Window005 extends JFrame{7
//定义组件8
JPanel jp1,jp2;9
JButton jb1,jb2,jb3,jb4,jb5,jb6;10
public static void main(String[] args) {11
Window005 win=new Window005();12
}13
//构造函数14
public Window005(){15
//创建组件16
jp1=new JPanel();//JPanel布局默认是FlowLayout流布局17
jp2=new JPanel();18
19
jb1=new JButton("西瓜");20
jb2=new JButton("苹果");21
jb3=new JButton("荔枝");22
jb4=new JButton("葡萄");23
jb5=new JButton("桔子");24
jb6=new JButton("香蕉");25
26
//设置布局管理器(Jpanel默认流布局)27
28
//添加JPanel29
jp1.add(jb1);30
jp1.add(jb2);31
jp2.add(jb3);32
jp2.add(jb4);33
jp2.add(jb5);34
35
//把Panel加入JFrame36
this.add(jp1, BorderLayout.NORTH);37
this.add(jb6, BorderLayout.CENTER);38
this.add(jp2, BorderLayout.SOUTH);39
40
//设置窗体41
this.setSize(300, 250);//窗体大小42
this.setLocation(200, 200);//屏幕显示初始位置43
this.setVisible(true);//显示44
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出窗体后将JFrame同时关闭45
}46
}
------------------------------------------------------------------------------
面板(JPanel)组件--注意事项
1、JPanel是JComponent的子类;
2、属于容器类组件,可以加入别的组件;
3、默认布局管理器是流式布局(FlowLayout)
Swing组件--文本框/密码框/标签组件[Window006.java]
几个常用组件
在图形用户界面编程中,我们常常会提供用户登录界面,比如登录到会员管理系统,登录到工资管理系统、仓库管理系统等。这时候我们就会用到:
1、文本框(JTextField)
2、密码框(JPasswordField)
3、标签(JLable)
xxxxxxxxxx62
1
/**2
* Swing组件--文本框(JTextField)/密码框(JPasswordField)/标签(JLable)组件使用3
*/4
import java.awt.*;5
import javax.swing.*;6
public class Window006 extends JFrame{7
//定义组件8
JPanel jp1,jp2,jp3;//面板9
JLabel jlb1,jlb2;//标签10
JButton jb1,jb2;//按钮11
JTextField jtf;//文本12
JPasswordField jpf;//密码13
public static void main(String[] args) {14
Window006 win=new Window006();15
}16
17
//构造函数18
public Window006(){19
//创建面板20
jp1=new JPanel();21
jp2=new JPanel();22
jp3=new JPanel();23
//创建标签24
jlb1=new JLabel("用户名");25
jlb2=new JLabel("密 码");26
//创建按钮27
jb1=new JButton("登录");28
jb2=new JButton("取消");29
//创建文本框30
jtf=new JTextField(10);31
//创建密码框32
jpf=new JPasswordField(10);33
34
//设置布局管理35
this.setLayout(new GridLayout(3, 1));//网格式布局36
37
//加入各个组件38
jp1.add(jlb1);39
jp1.add(jtf);40
41
jp2.add(jlb2);42
jp2.add(jpf);43
44
jp3.add(jb1);45
jp3.add(jb2);46
47
//加入到JFrame48
this.add(jp1);49
this.add(jp2);50
this.add(jp3);51
52
//设置窗体53
this.setTitle("用户登录");//窗体标签54
this.setSize(300, 150);//窗体大小55
this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)56
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFrame57
this.setVisible(true);//显示窗体58
59
//锁定窗体60
this.setResizable(false);61
}62
}
------------------------------------------------------------------------------
Swing组件--复选框/单选框组件[Window007.java]
几个常用组件
在图形用户界面编程中,我们常常会提供用户注册界面,这时候我们就会用到:
1、复选框组件(JCheckBox)
2、单选框组件(JRadioButton)
特别说明:
同一组单选按钮必需先创建ButtonGroup,然后把单选框组件放入到ButtonGroup中
xxxxxxxxxx69
1
/**2
* 复选框组件(JCheckBox)和单选框组件(JRadioButton)使用3
*/4
import java.awt.*;5
import javax.swing.*;6
public class Window007 extends JFrame{7
//定义组件8
JPanel jp1,jp2,jp3;9
JLabel jl1,jl2;10
JCheckBox jcb1,jcb2,jcb3;11
JRadioButton jrb1,jrb2;12
ButtonGroup bg;13
JButton jb1,jb2;14
public static void main(String[] args) {15
Window007 win=new Window007();16
}17
//构造函数18
public Window007(){19
//创建组件20
jp1=new JPanel();21
jp2=new JPanel();22
jp3=new JPanel();23
24
jl1=new JLabel("你最喜欢的运功:");25
jl2=new JLabel("你的性别:");26
27
jcb1=new JCheckBox("足球");28
jcb2=new JCheckBox("篮球");29
jcb3=new JCheckBox("网球");30
31
jrb1=new JRadioButton("男");32
jrb2=new JRadioButton("女");33
34
jb1=new JButton("注册用户");35
jb2=new JButton("取消注册");36
37
//一定要把jrb1与jrb2放入到一个ButtonGroup中38
ButtonGroup bg=new ButtonGroup();39
bg.add(jrb1);40
bg.add(jrb2);41
42
//创建布局43
this.setLayout(new GridLayout(3, 1));44
45
//加入组件46
jp1.add(jl1);47
jp1.add(jcb1);48
jp1.add(jcb2);49
jp1.add(jcb3);50
51
jp2.add(jl2);52
jp2.add(jrb1);53
jp2.add(jrb2);54
55
jp3.add(jb1);56
jp3.add(jb2);57
58
this.add(jp1);59
this.add(jp2);60
this.add(jp3);61
62
//设置窗体63
this.setTitle("用户注册");64
this.setSize(300, 150);65
this.setLocationRelativeTo(null);66
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);67
this.setVisible(true);68
}69
}
------------------------------------------------------------------------------
Swing组件--下拉框/列表框/流动空格组件[Window008.java]
在图形用户界面编程中,我们常常会提供用户调查界面,这个时候我们会用到:
1、下拉框组件(JComboBox)
2、列表框组件(JList)
3、滚动窗格组件(JScrollPane)
特别说明:
一般来说,列表框组件+滚动窗格组件是结合使用的。目的是让列表框中的选项可以有滚动条支持。
x
1
/**2
* 下拉框(JComboBox)/列表框(JList)/滚动空格(JScrollPane)的使用3
*/4
import java.awt.*;5
import javax.swing.*;6
public class Window008 extends JFrame{7
//定义组件8
JPanel jp1,jp2;9
JLabel jl1,jl2;10
JComboBox jcb;11
JList jl;12
JScrollPane jsp;13
public static void main(String[] args) {14
Window008 win=new Window008();15
}16
//构造函数17
public Window008(){18
//建立组件19
jp1=new JPanel();20
jp2=new JPanel();21
22
jl1=new JLabel("你的籍贯:");23
jl2=new JLabel("旅游地点:");24
25
String[] jg={"北京","上海","天津","火星"};26
jcb=new JComboBox(jg);27
28
String[] dd={"长城","东方明珠","海河","什么什么"};29
jl=new JList(dd); 30
//设置你希望显示多少个选项31
jl.setVisibleRowCount(2);//滚动条显示setVisibleRowCount(?)?为显示条数32
jsp=new JScrollPane(jl);33
34
//设定布局35
this.setLayout(new GridLayout(3, 1));36
37
//加入组件38
jp1.add(jl1);39
jp1.add(jcb);40
41
jp2.add(jl2);42
jp2.add(jsp);43
44
this.add(jp1);45
this.add(jp2);46
47
//设置窗体48
this.setTitle("用户注册");49
this.setSize(300, 300);50
this.setLocationRelativeTo(null);51
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);52
this.setVisible(true);53
}54
}
浙公网安备 33010602011771号