韩顺平 java 第31讲 常用组件
2015-10-09 10:00
405 查看
面板组件 JPanel
为什么有JPanel?
在图形用户界面编程中,如果只是普通的组件布局,可以用前面的三种布局管理器就可以解决,但是在比较复杂的布局要求时,就需要使用布局管理器的组合使用。怎么用JPanel?
JPanel是面板组件,非顶层容器。一个界面只能有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout、BorderLayout、GridLayout等各种布局效果,这样可以组合使用达到较为复杂的布局效果。
package test; import java.awt.*; import javax.swing.*; import javax.swing.*; public class MyClass extends JFrame{ //定义组件 JButton jb1,jb2,jb3,jb4,jb5,jb6; JPanel jp1,jp2; public static void main(String[] args) { MyClass myclass = new MyClass(); } public MyClass(){ //创建组件 jb1 = new JButton("1"); jb2 = new JButton("2"); jb3 = new JButton("3"); jb4 = new JButton("4"); jb5 = new JButton("5"); jb6 = new JButton("6"); jp1 = new JPanel(); jp2 = new JPanel(); //添加组件 jp1.add(jb1); jp1.add(jb2); jp2.add(jb3); jp2.add(jb4); jp2.add(jb5); this.add(jp1,BorderLayout.NORTH); this.add(jp2,BorderLayout.SOUTH); this.add(jb6,BorderLayout.CENTER); this.setTitle("网格布局演示"); this.setSize(300,200); this.setLocation(200, 100); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
注意事项
Jpanel是JComponent的子类属于容器类组件,可以加入别的组件
默认布局管理器就是流式布局(FlowLayout)
用户登陆界面涉及到的几个常用组件
文本框 JTextField密码框 JPasswordField
标签 Jlabel
package test; import java.awt.*; import javax.swing.*; import javax.swing.*; public class MyClass extends JFrame{ //定义组件 JButton jb1,jb2; JPanel jp1,jp2,jp3; JTextField jt; JPasswordField jpwd; JLabel jl1,jl2; public static void main(String[] args) { MyClass myclass = new MyClass(); } public MyClass(){ //创建组件 jb1 = new JButton("确认"); jb2 = new JButton("取消"); jp1 = new JPanel(); jp2 = new JPanel(); jp3 = new JPanel(); jt = new JTextField(10);//这里设置宽度 jpwd = new JPasswordField(10); jl1 = new JLabel("用户名"); jl2 = new JLabel("密 码"); this.setLayout(new GridLayout(3,1)); //添加组件 jp1.add(jl1); jp1.add(jt); jp2.add(jl2); jp2.add(jpwd); jp3.add(jb1); jp3.add(jb2); this.add(jp1); this.add(jp2); this.add(jp3); this.setTitle("用户登陆界面"); this.setSize(300,160); this.setLocation(200, 100); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
复选框、单选框、下拉框、列表框、滑动窗格
复选框组件 JCheckBox单选框组件 JradioButton
下拉框 JComboBox
列表框 JList
滑动窗格 JScrollPanel
特别说明
同一组单选按钮必须先创建ButtonGroup,然后把单选框组件放入到ButtonGroup中。
一般来说,列表框组件+滑动窗格组件是结合使用的,目的是让列表框中的选项可以有滚动条支持。
package test; import java.awt.*; import javax.swing.*; import javax.swing.*; public class MyClass extends JFrame{ //定义组件 JButton jb1,jb2; JPanel jp1,jp2,jp3,jp4,jp5; JLabel jl1,jl2,jl3,jl4; JCheckBox jcb1,jcb2,jcb3; JRadioButton jrb1,jrb2; ButtonGroup bg; JComboBox jcb; JList jlist; JScrollPane jsp; public static void main(String[] args) { MyClass myclass = new MyClass(); } public MyClass(){ //创建组件 jp1 = new JPanel(); jp2 = new JPanel(); jp3 = new JPanel(); jp4 = new JPanel(); jp5 = new JPanel(); jl1 = new JLabel("你喜欢的运动"); jl2 = new JLabel("性别"); jl3 = new JLabel("籍贯"); jl4 = new JLabel("喜欢的明星"); jcb1 = new JCheckBox("足球"); jcb2 = new JCheckBox("篮球"); jcb3 = new JCheckBox("网球"); jrb1 = new JRadioButton("男"); jrb2 = new JRadioButton("女"); bg = new ButtonGroup(); bg.add(jrb1); bg.add(jrb2); String []jg = {"北京","上海","山东"}; jcb = new JComboBox(jg); String []dd = {"Jay","JJ","蔡依林","陈","那英","周杰伦呢","赵四","赵本山"}; jlist = new JList(dd); jlist.setVisibleRowCount(3); jsp = new JScrollPane(jlist); jb1 = new JButton("注册用户"); jb2 = new JButton("取消注册"); //设置布局 this.setLayout(new GridLayout(5,1)); //添加组件 jp1.add(jl1); jp1.add(jcb1); jp1.add(jcb2); jp1.add(jcb3); jp2.add(jl2); jp2.add(jrb1); jp2.add(jrb2); jp3.add(jl3); jp3.add(jcb); jp4.add(jl4); jp4.add(jsp); jp5.add(jb1); jp5.add(jb2); this.add(jp1); this.add(jp2); this.add(jp3); this.add(jp4); this.add(jp5); this.setTitle("单选框和复选框"); this.setSize(400,300); this.setLocation(200, 100); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统