首页 > 代码库 > 学习笔记二十二: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(三)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。