形成天才的决定因素应该是勤奋。——郭沫若
本讲内容:常用组件
一、面板组件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