怎么css设定行间距java中的jcheckbox的垂直间距

第5单元&&Java&GUI编程
第5单元& Java GUI编程
一、教学目的、要求
&&& 了解Java
Swing类层次结构、初步掌握容器类、组件类和顶级容器类的用法、了解布局管理器的用法、了解事件控制的要点、理解AWT事件结构、了解基本事件控制机制
二、重点与难点
重点:AWT、Swing组件
难点:布局管理器、事件监听机制、理解Java事件机制、掌握Java中常用的处理方法
三、教学方法与手段
“任务驱动”的教学模式,案例教学、讲练结合的教学方法
四、所需的教学仪器、设备
&&& 大屏、机房
五、授课主要内容(理论)
任务一& 容器
任务要求:
&&& 掌握Java
GUI的概念。掌握Java容器的概念和使用方法。掌握布局管理器的应用方式。
掌握“学生信息管理系统”中用户登录界面的设计方法,培养使用Java语言自行设计登录界面的能力。
案例31& 用户登录界面的设计
相关知识点:
(1)案例讲解& 学生信息管理系统登录界面:
分析:在Java中,用户登录窗体也是一个类,但它必须继承JFrame类,在窗体中必须有三个组件:用户名和密码,另外再加上“登录”按钮。
(2)Java GUI 图形用户界面:
图形用户界面GUI(Graphics User Interface)。
抽象窗口工具AWT(Abstract Window Toolkit ),它所对应的包是java.awt。
Swing组件,它所对应的包是javax.swing。
(3)Java Swing 主要类层次关系:
Container类是Component和Window类的父类。
(4)容器类(Container):
容器是图形用户界面设计的基础,容器可分:顶级容器和中间容器。
1)顶级容器
顶级容器有JFrame,
JDialog,JApplet,JWindow4个,最常用的是JFrame。组件不能直接放置到顶级容器里面。
2)中间容器(JPanel)
主要功能是容纳其它组件和容器。JPanel通常称为面板,是一种没有边框、没有标题的容器。
(5)顶级容器
1)JFrame框架:
是一种带标题框并且可以改变大小的窗口。
包含一个称为内容面板(ContentPane)的容器,应当把组件添加到内容面板中。
应当为内容面板设置布局。
构造方法:
&&&&&&&&&&&
public JFrame()
&&&&&&&&&&&
public JFrame(String title)
框架类方法:
&&&&&&&&&&&
public Container
getContentPane()&& //取得内容面板
&&&&&&&&&&&
public void setTitle(String title)& //设置标题
&&&&&&&&&&&
public String
getTitle()&&&&&&&&&&&
//取得标题
&&&&&&&&&&&
public void setBackground(Color c)& //设置背景色
2)对话框(JDialog)
对话框按模式分,可分为有模式(modal)和无模式(non-modal)两种。
对话框按定义方式分,可分为标准对话框和自定义对话框。标准对话框有:文件的打开保存类JFileChooser、颜色处理类JColorChooser、页面设置和打印处理类PrinterJob和显示消息类JOptionPane。自定义对话框是指用JDialog类创建的对话框。
窗体(JFrame)是可以设置成改变大小和最小化的,但对话框(JDialog)没有这样的功能。
构造方法:public JDialog()
常用方法:public void setModal(boolean b)
(6)中间容器:
1)JPanel面板
像一个空白的画布,默认布局是FlowLayout布局。
JPanel面板实例化后必须使用Container类的add方法装入到Container对象中。
构造方法:
&&&&&&&&&&&
public JPanel()
&&&&&&&&&&&
public JPanel(LayoutManager layout)
2)JScrollPane& 窗格面板
JScollPane的特点是在Jpanel面板的基础上增加了上下和左右滚动条,可以拖动滚动条来查看较多的组件。
3)JSplitPane& 拆分面板
顾名思义,拆分窗格就是被分成两部分(只能两部分)的容器。拆分窗格有两种类型:水平拆分和垂直拆分。
(7)布局管理器:
使用的目的与场所:为了实现跨平台的特性并且获得动态的布局效果。
管理排列顺序,组件的大小、位置,当窗口移动或调整大小后组件如何变化。
主要包括:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout
1)FlowLayout是JPanel、Panel和Applet的缺省布局管理器。
特点:组件放置规律是从上到下、从左到右依次摆放,且居中对齐。
构造方法:
&&&&&&&&&&&
FlowLayout()&&&
&&//默认的水平垂直间隙是5个单位
&&&&&&&&&&&
FlowLayout(int
//FlowLayout.LEFT
&&&&&&&&&&&
FlowLayout(int align,int hgap,int vgap)
2)BorderLayout是Window,Frame和Dialog的缺省布局管理器。
特点:把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件。
构造方法:
&&&&&&&&&&&
BorderLayout()&&&
//组件之间没有间距
&&&&&&&&&&&
BorderLayout(int hgap,int vgap)
3)CardLayout把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件。每层都可以利用JPanel来实现复杂的用户界面。
特点:以卡片的形式层层叠放,每次只能看到最上面的一张卡片内容。
构造方法:
&&&&&&&&&&&
CardLayout()
&&&&&&&&&&&
CardLayout(int hgap,int vgap)
常用方法:
&&&&&&&&&&&
public void first(Container parent)&
//next、previous、last
4)GridLayout在一个二维的网格中来布置组件,每个网格的大小相等,一个网格可以放置一个组件。
构造方法:
&&&&&&&&&&&
GridLayout()&&&
//默认一行一列
&&&&&&&&&&&
GridLayout(int rows,int cols)
&&&&&&&&&&&&GridLayout(int
rows,int cols,int hgap,int vgap)
5)GridBagLayout使用最灵活,难度最大。它不要求组件的大小相同即可将组件垂直和水平对齐。
当面板中的布局管理器设为null时,面板中就没有布局管理器来为添加的组件进行自动管理,这样只有预先设定该组件的大小及显示的起始位置。
内容面板对象.setLayout(null);
组件名.setBounds(60,40,60,20);
任务二 常用组件
任务要求:
掌握Java常用组件(JButton、JLabel、JTextField、JTextArea、JPasswordField、JCheckBox、JRadioButton、JComboBox、JList、JMenuBar、JPopupMenu)等的使用方法。
掌握“学生信息管理系统”中学生信息录入界面及主界面的设计方法,培养自行设计相关界面的能力。
案例32& 学生信息录入界面的设计
案例33& 带有菜单的学生信息管理系统主界面
相关知识点:
(1)常用组件:
1)按钮(JButton)
构造方法:
&&&&&&&&&&&
public JButton();
&&&&&&&&&&&
public JButton(String text);
&&&&&&&&&&&&public
JButton(String text,Icon icon);
常用方法:
&&&&&&&&&&&
public String getLabel();
&&&&&&&&&&&
public void setLabel(String text);
加载图标对象方法:
&&&&&&&&&&&
Icon icon=new ImageIcon(“tips.gif”);
2)标签和文本(JLabel、JTextField、JTextArea、JPasswordField)
a.标签(JLabel)构造方法:
&&&&&&&&&&&
public JLabel();
&&&&&&&&&&&
public JLabel(String text);
b.单行文本框(JTextField)构造方法:
&&&&&&&&&&
&public JTextField();
&&&&&&&&&&
&public JTextField(String text);
&&&&&&&&&&
&public JTextField(int columns);
&&&&&&&&&&&
public JTextField(String text,int columns);
&c.多行文本框(JTextArea)构造方法:
&&&&&&&&&&&
public JTextArea();
&&&&&&&&&&&
public JTextArea(String text);
&&&&&&&&&&&
public JTextArea(int rows,int columns);
&&&&&&&&&&
&public JTextArea(String text,int rows,int
&&&&&&&&&&&
注:要显示滚动条,必须将多行文本框对象放入滚动条面板对象,即JScrollPane创建的对象才行。如:JScrollPane
jsp=new JScrollPane(jtmemo);
&d.密码输入框(JPasswordField)
&&&&&&&&&&&
构造方法:
&&&&&&&&&&&&&&
&public JPasswordField();
&&&&&&&&&&&&&&&
public JPasswordField(int columns);
&&&&&&&&&&&&&&&
public JPasswordField(String text,int columns);
&&&&&&&&&&
&常用方法:
&&&&&&&&&&&&&&&
public void setEchoChar(char c); //设置回显字符
&&&&&&&&&&&&&&&
public char getEchoChar();
3)复选按钮(JCheckBox)
复选框提供两种状态:一种是选中,一种是未选中。
用户可以同时选中多个复选框。
构造方法:
&&&&&&&&&&&
public JCheckBox(); //未被选中的复选框
&&&&&&&&&&&
public JCheckBox(String text);
&&&&&&&&&&&
public JCheckBox(String text,boolean selected);
常用方法:
&&&&&&&&&&&
public void setText(String text);
&&&&&&&&&&&
public String getText();
&&&&&&&&&&&
public void setSelected(boolean b);
&&&&&&&&&&&
public boolean isSelected(); //判断是否被选中
4)单选按钮(JRadioButton)
单选按钮也提供两种状态:一种是选中,一种是未选中。
构造方法:
&&&&&&&&&&&
public JRadioButton(); //未被选中的单选框
&&&&&&&&&&&
public JRadioButton(String text);
&&&&&&&&&&&
public JRadioButton(String text,boolean selected);
归到一组的单选按钮同一时刻只能选中一个,所以需要创建一个ButtonGroup(按钮组)对象,将属于同一组的单选按钮添加到一个按钮组对象中。
例:ButtonGroup bg=new ButtonGroup();
&&&&&&&&&&&
bg.add(jrsex1);
&&&&&&&&&&&
bg.add(jrsex2);
5)下拉式列表框(JComboBox)
下拉式列表框是可供用户进行选择的一系列可选项,平时只显示一个可选项,下拉时可以看到所有选择项。
下拉式列表框只支持单项选择。
构造方法:
&&&&&&&&&&&
public JComboBox();
&&&&&&&&&&&
public JComboBox(Object[] items); //数组名
&&&&&&&&常用方法:
&&&&&&&&&&&
public addItem(Object anObject);
&&&&&&&&&&&
public Object getSelectedItem(); //返回当前所选项
&&&&&&&&&&&
public void setSelectedIndex(int n);//0指第1项,-1指无
6)列表框(JList )
列表框列表不需下拉就可以看到所有选项,并且支持单项选择和多项选择。
构造方法:
&&&&&&&&&&&
public JList();
&&&&&&&&&&&
public JList(Object[] listData); //数组名
常用方法:
&&&&&&&&&&&&public
void setVisibleRowCount(int n);& //此属性默认值是8
&&&&&&&&&&&
public void setFixedCellWidth(int n); //设置列宽
注1.下拉式列表框和列表框的最大区别是:下拉式列表框的内容可以在程序运行过程中通过方法动态添加和删除,但列表框则不能。
注2.若列表框需要出现滚动条,则必须把列表框对象放入JScrollPane类对象中。
(2)案例讲解 &学生信息录入界面的设计:
菜单分下拉式和弹出式两种。
菜单组件由菜单栏、菜单、菜单项三层组成。
1)下拉式菜单
a.菜单栏(JMenuBar)
&&&&&&&&&&&
public JMenuBar();
&&&&&&&&&&&
public JMenu add(JMenu m); //将指定菜单追加到菜单栏末尾
&&&&&&&&&&&
通过使用JFrame类的setJMenuBar(JMenuBar m)方法将菜单栏放到窗口上方的固定位置上。
&&&&&&&&&&&
菜单栏不支持事件监听程序。
b.菜单(JMenu)
&&&&&&&&&&&
构造方法:
&&&&&&&&&&&&&&&
public JMenu();
&&&&&&&&&&&&&&&
public JMenu(String text);
&&&&&&&&&&&
常用方法:
&&&&&&&&&&&&&&&
public JMenuItem add(JMenuItem m);
&&&&&&&&&&&&&&&
public void addSeparator();
c. 菜单项(JMenuItem)
&&&&&&&&&&&
菜单项是用户最终要进行选择的项。菜单项一般用菜单的add()方法加入到菜单中。
&&&&&&&&&&&
构造方法:
&&&&&&&&&&&&&&&
public JMenuItem();
&&&&&&&&&&&&&&&
public JMenuItem(String text);
&&&&&&&&&&&
常用方法:
&&&&&&&&&&&&&&&
public void setEnabled(boolean b);
&&&&&&&&&&&&&&&
public void setMnemonic(char c);//设置ALT+X字符的快捷方式。
&&&&&&&&&&&&&&&
public void setAccelerator(KeyStroke keystroke);//设置CTRL+X
&&&&&&&&&&&&&&&
例:setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK));&&
2)弹出式菜单(JPopupMenu)
弹出式菜单是一种独立的菜单,可以加到任何一个组件上。
程序运行时,一般情况下不显示,当用户进行某项操作时显示,如右击等。
构造方法:
&&&&&&&&&&&
public JPopupMenu();
常用方法:
&&&&&&&&&&&
public JMenuItem add(JMenuItem menuItem);
&&&&&&&&&&&
public void addSeparator();
&&&&&&&&&&&&public
void setVisible(boolean b);
&&&&&&&&&&&
public boolean isVisible();
&&&&&&&&&&&
public void setLocation(int x,int y); //设置左上角位置
(4)案例讲解 &带有菜单的学生信息管理系统主界面:
分析:菜单主要用来提供给用户选择某一功能的特定界面。在学生信息管理系统主界面设计中,菜单应包含用户管理选项、信息录入修改查询选项和软件帮助选项等。
任务三& 事件模型
任务要求:
掌握Java事件模型的原理和具体应用方法。
掌握“学生信息管理系统”用户登录界面、学生信息录入界面及主界面中事件处理机制的应用,培养自行进行事件处理的能力。
案例34 &实现用户登录界面的功能
案例35 &实现学生信息录入界面的功能
案例36& 带弹出式菜单的主界面
相关知识点:
(1)案例讲解 &实现用户登录界面的功能:
功能说明:当点击“确定”按钮,将判断用户名和密码是否正确,如果正确,则显示“登录成功”消息框,并跳转到程序主界面,如果不正确,则显示“用户名或密码不正确,请重新输入”,原输入的内容将被清空,光标自动停留在“用户名”输入文本框中。当点击“取消”按钮,原输入的内容将被清空,光标自动停留在“用户名”输入文本框中。
(2)案例讲解& 实现学生信息录入界面的功能:
(3)案例讲解& 带弹出式菜单的主界面:
(4)基于授权事件模型:
最新的事件处理方法是基于授权事件模型。
事件模型的原理:
当一个事件源(如组件)被按键或鼠标点击等操作发生时,该事件源将产生一个事件并把它送到一个或多个与源关联的监听器那里,由监听器调用处理事件的方法后返回。
(5)事件处理机制
一个完整的事件处理机制涉及三方面:
1)事件(Event):用户对组件所做的一个操作后产生的对象。
2)事件源(Event Source):发生事件的组件。
3)监听器(Listener) :又名事件处理器(Event Handler) ,负责接收事件并处理事件的对象。
(6)事件:
在授权事件模型中,事件是一个描述事件源状态改变的对象。&
&&& 通过鼠标、键盘与
GUI 界面直接或间接交互都会生成事件。 如:按下一个按钮、通过键盘输入一个字符、选择列表框中的一项、点击一下鼠标等。
事件类都是在java.awt.event包中定义的。
java.util.EventObject类是所有事件对象的基础父类。
1)事件体系结构:
EventObject类是所有事件类的父类。
2)事件类型:
ActionEvent
通常按下按钮,双击列表项或选中一个菜单项时,就会生成此事件。
Button、List、MenuItem、TextField
AdjustmentEvent
操纵滚动条时会生成此事件。
ComponentEvent
当一个组件移动、隐藏、调整大小或成为可见时会生成此事件。
单击复选框或列表项时,或者当一个选择框或一个可选菜单的项被选择或取消时生成此事件。
Checkbox、CheckboxMenuItem、Choice、List
FocusEvent
组件获得或失去键盘焦点时会生成此事件。
接收到键盘输入时会生成此事件。
MouseEvent
拖动、移动、单击、按下或释放鼠标或在鼠标进入或退出一个组件时,会生成此事件。
ContainerEvent
将组件添加至容器或从中删除时会生成此事件。
TextEvent&
在文本区或文本域的文本改变时会生成此事件 。
TextField、TextArea
WindowEvent
当一个窗口激活、关闭、失效、恢复、最小化、打开或退出时会生成此事件。
(7)事件源:
事件源是一个生成事件的对象(如组件)。
一个事件源可能会生成不同类型的事件。
事件源提供了一组方法,用于为事件注册一个或多个监听器。
事件源将在发生事件时向所有注册的监听器发送事件对象。
每种事件的类型都有其自己的注册方法。
&&& 一般形式为:
public void add&EventType&Listener
(TypeListener e)
(8)监听器接口(Listener)
监听器对象属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”。
&&& 监听器通过实现
java.awt.event 包中定义的一个或多个接口来创建。接口中包含了各种事件的处理函数。
有兴趣接收事件的任何监听器类都必须实现监听器接口。
在发生事件时,事件源将调用监听器定义的相应方法。监听器对象使用事件对象中的信息来确定它们对事件的响应。
监听器接口列表:
事件监听器
ActionListener
actionPerformed
AdjustmentListener
adjustmentValueChanged
ComponentListener
componentResized
componentMoved
componentShown
componentHidden
ContainerListener
componentAdded
componentRemoved
FocusListener
focusLost、focusGained
ItemListener
itemStateChanged
KeyListener
keyPressed、keyReleased
MouseListener
mouseClicked、mouseEntered
mouseExited、mousePressed
mouseReleased
MouseMotionListener
mouseDragged、mouseMoved
TextListener
textChanged
WindowListener
windowActivated、windowDeactivated
windowClosed、windowClosing
windowIconified、windowDeiconified
windowOpened
(9)适配器类:
为了使事件处理变得简单,Java 为具有多个方法的监听器接口提供适配器类,只需重写所需方法,无关方法不用实现。
事件监听器接口
ComponentAdapter
ComponentListener
ContainerAdapter
ContainerListener
FocusAdapter
FocusListener
KeyAdapter
KeyListener
MouseAdapter
MouseListener
MouseMotionAdapter
MouseMotionListener
WindowAdapter
WindowListener
六、实训主要内容
对“学生信息录入”界面进行修改,添加下列几项内容:所在班级、联系电话、Email地址、QQ。
对“学生信息录入”主界面的“帮助”菜单中添加菜单项。
设计帮助菜单中的“关于…”界面。
使用Swing中的组件创建本单元书后编程题图(a)所示的GUI,实现“OK”和“Cancel”按钮的功能。
使用Swing中的组件创建本单元书后编程题图(b)所示的GUI,实现“OK”和“Cancel”按钮的功能。
使用Swing中的组件创建本单元书后编程题图(c)所示的GUI,实现“OK”和“Cancel”按钮的功能。
七、小结、作业布置
组件是各种各样的类,是构造图形用户界面的最基本单元。
GUI组件包括标签(JLabel)、文本框(单行JTextField和多行JTextArea)、按钮(JButton)、单行按钮(JRadioButton)、复选按钮(JCheckBox)、列表框(下拉式JComboBox和列表框JList)和菜单(菜单栏JMenuBar、菜单JMenu和菜单项JMenuItem)等。
Java最新的事件处理方法是基于授权事件模型。
事件是描述事件源状态变化的对象。用户与GUI组件交互就会生成事件。
事件源是一个生成(或触发)事件的对象。当这个对象的内部状态改变时,事件就会发生。
在Java事件处理中,所有的事件都派生自类EventObject。此类是在 java.util包中定义。
在发生事件时,事件源将调用监听器定义的相应方法。
适配器类只需重写所需方法,无关方法不用实现。
作业布置:
复习知识点,完成第五单元书后练习题及实训题。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
轻松学Java16章
图形界面编程
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
JavaSwing界面设计(所有控件及示例)
下载积分:840
内容提示:
文档格式:PPT|
浏览次数:42|
上传日期: 00:48:09|
文档星级:
该用户还上传了这些文档
下载文档:JavaSwing界面设计(所有控件及示例).PPT
官方公共微信Java的JTable中添加JCheckBox的点击事件处理,请高手指点
[问题点数:40分]
Java的JTable中添加JCheckBox的点击事件处理,请高手指点
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。java gui gui编程 java gui 框架 java gui布局 java反编译工具 gui java gui 教程..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Java GUI编程
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 css设定行间距 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信