学习笔记二十二:GUI(三)
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:42
形成天才的决定身分应当曲直奋。——郭沫若
本讲内容:常用组件
一、面板组件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.setDefaultClo搜刮引擎优化peration(JFrame.EXIT_ON_CLOSE); } }
[img]http://img.blog.csdn.net/20150105230050765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlndW9qaW4xMjMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
二、文本框(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.setDefaultClo搜刮引擎优化peration(JFrame.EXIT_ON_CLOSE); } }
[img]http://img.blog.csdn.net/20150105231537167?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlndW9qaW4xMjMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
三、复选框组件(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.setDefaultClo搜刮引擎优化peration(JFrame.EXIT_ON_CLOSE); } }
[img]http://img.blog.csdn.net/20150105233440025?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlndW9qaW4xMjMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
四、下拉框组件(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.setDefaultClo搜刮引擎优化peration(JFrame.EXIT_ON_CLOSE); } }
[img]http://img.blog.csdn.net/20150106001355421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlndW9qaW4xMjMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
本讲就到这里,Take your time and enjoy it