Java应用程序设计(Swing GUI).ppt

上传人:max****ui 文档编号:6360227 上传时间:2020-02-23 格式:PPT 页数:49 大小:319.31KB
返回 下载 相关 举报
Java应用程序设计(Swing GUI).ppt_第1页
第1页 / 共49页
Java应用程序设计(Swing GUI).ppt_第2页
第2页 / 共49页
Java应用程序设计(Swing GUI).ppt_第3页
第3页 / 共49页
点击查看更多>>
资源描述
Java应用程序设计 第8章Swing组件参考教材 Java实用教程 肖磊 人民邮电出版社 8 1Swing概述 Swing是基于AWT开发的 AWT的组件全部是重量级的 而相应的组件在Swing中全部都改成轻量级的 Swing组件的跨平台性比较好 而且增加了一些组件 Swing是JFC JavaFoundationClass 的一部分 其余5个部分是 AWT 辅助功能API 2DAPI和对拖放功能增强的支持 Swing中的每一个轻量级组件必须出现在重量级容器中 所以Swing的小应用程序JApplet 窗体 窗口 对话框都必须是重量组件 以提供绘制Swing轻量级组件的窗口 Swing组件由40多个 一部分为AWT组件的替代品 另一部分是提供给用户开发图形用户界面增添的组件 8 1Swing概述 8 2创建窗体 利用JFrame类来创建窗体 setTitle Stringtitle 设置窗体标题 setBounds intx inty intwidth intheight 设置窗体的位置和大小setDefaultCloseOperation intoperation 设置关闭按钮的动作operation为JFrame类中用来设置关闭按钮动作的静态常量 见下页表 8 2创建窗体 8 2创建窗体 在利用JFrame类创建窗体时 必须在最后通过该类的setVisible true 将该窗体设置为可见 默认为不可见 在setVisible true 之后的对窗体设置将无效 例子 MyFirstFrame java 8 3常用组件 8 3 1JLable标签组件通过JLable类创建标签组件 setText Stringtext 设置标签设置的文本setFont Fontfont 设置文本字体及大小 setHorizontalAlignment intalignment 设置文本的显示位置 该参数可从下表中选择 8 3 1JLabel标签的创建 JLabel类用于设置标签内容水平位置的常量 setIcon Iconicon 设置标签中可显示的图片setHorizontalTextPosition inttextPosition 设置文字相对于图像在水平方向上的位置 可从下表中选择 例子 LabelDemo java 8 3 2JButton组件 通过JButton类来创建按钮组件 setText Stringtext 设置按钮的标签文本setIcon IcondefaultIcon 设置按钮在默认状态下显示的图片 setRolloverIcon IconrolloverIcon 设置当光标移到按钮上时显示的图片 setPressedIcon IconpressedIcon 设置按钮被按下时显示的图片 8 3 2JButton组件 setMargin Insetsm 将按钮边框和标签四周的间隔均设置为0 Insets类的构造方法 Insets inttop intleft intbottom intright 4个整形参数依次为 标签上方 左侧 下方和右侧的间隔 setContentAreaFilled booleanb 设置为不绘制按钮的内容区域 即设置按钮的背景为透明 当参数为false时为不绘制 默认为true setBorderPainted booleanb 设置不绘制按钮的边框 默认为true 表示绘制 8 3 3JRadioButton组件 JRadioButton组件实现一个单选按钮 可以单独使用 也可以和ButtonGroup类联合使用 单独使用 该按钮可以被选定和取消 与ButtonGroup联合使用 用户只能选定按钮组中的一个按钮 其取消选定的操作由ButtonGroup类自动完成 8 3 3JRadioButton ButtonGroup ButtonGroup类用来创建一个按钮组 其作用负责维护本组按钮的 开启 状态 每个组中只能有一个按钮处于 开启 状态 经常与JRadioButton JRadioButtonMenuItem JToggleButton类型的按钮一起使用 ButtonGroup类提供的常用方法 下页表 ButtonGroup类提供的常用方法 8 3 3JRadioButton 常用方法 setText Stringtext 设置单选按钮文本 setSelected booleanb 设置按钮的状态 true为选中 默认为false 例子 RadioButtonDemo java 8 3 4JCheckBox组件 JCheckBox为一复选框 用户可以同时选定多个 setText Stringtext 设置复选框的文本setSelected booleanb 设置该按钮的选中状态 true表示选中 默认为false 例子 CheckBoxDemo java 8 3 5JComboBox组件 选择框 JComboBox组件实现一个选择框 用户可从中选取一项 只能一项 若设置为可编辑状态 则可以在选择框中输入相应的值 创建JComboBox组件的方法 1 JComboBox Object items 构造函数String idCards 身份证 士兵证 驾驶证 JComboxBoxidCardsComboBox newJComboxBox idCards 8 3 5JComboBox组件 2 setModel ComboBoxModelaModel 方法StringidCards 身份证 士兵证 驾驶证 JComboBoxicb newJComboBox icb setModel newDefaultComboBoxModel idCards 3 addItem Objectitem 和insertItemAt Objectitem intindex JComboBoxicb newJComboBox icb addItem 士兵证 icb addItem 驾驶证 icb insertItemAt 身份证 0 8 3 5JComboBox组件 8 3 5JComboBox组件 JComboBox类提供的常用方法 例子 ComboBoxDemo java 8 3 6JList组件 与JComboBox类似 不同之处是可以多选 初始化列表项Integer months 1 2 3 4 5 6 7 8 9 10 11 12 JListlist newJList months JList列表框的3种选取模式 通过ListSelectionModel类中的静态常量进行指定 8 3 6JList组件 JList提供的常用方法setSelectedIndex intindex 选中指定索引的一个选项 setSelectedIndices int indices 选中指定索引的一组选项 setSelectionBackground ColorselectionBackgroud 指定被选项的背景色 setSelectionForeground ColorselectionForeground 指定被选项的前景色 getSelectedIndices 以int 形式获得所有被选项的索引值 getSelectedValues 以Object 形式获得所有被选项的内容 8 3 6JList组件 JList提供的常用方法clearSelection 取消所有被选中的项 isSelectionEmpty 是否有被选中的项 若有 则返回true isSelectedIndex intindex 指定的索引是否被选中 若选中 则返回true ensureIndexIsVisible intindex 使指定项在选择窗口中可见 setFixedCellHeight intheight 设置窗口中每个选项的高度 setVisibleRowCount intcount 设置在选择窗口中最多可见的选项数 8 3 6JList组件 JList提供的常用方法getPreferredScrollableViewportSize 获得使指定个数选项可见需要的窗口高度 setSelectionModel intselectModel 设置选择框的选取模式 例子 ListDemo java 8 3 7JTextField组件 创建一个单行文本框 设置默认文本 JTextFieldtf newJTextField 请输入姓名 JTextField类提供的常用方法setText Stringtext 设置文本框的文本getPreferredSize 获得文本框的首选大小 返回Dimensions类型的对象 scrollRectToVisible Rectangler 向左或向右滚动文本框中的内容 setColumns intcolumns 设置文本框最多可显示的列数 setFont Fontf 设置文本框的字体 setScrollOffset intscrollOffset 设置文本框的移动偏移量 以像素为单位 setHorizontalAlignment intalignment 设置文本框的内容水平对齐方式 由下表的常量指定 例子 TextFieldDemo java 8 3 8JPasswordField组件 创建一个密码框 不显示用户输入的内容 只显示一个特定的字符 JPasswordField类提供的常用方法setEchoChar charc 设置回显字符 默认 getEchoChar 返回char型的回显字符echoCharIsSet 查看是否设置了回显字符 若已经设置 返回true 否则为false getPassword 获得用户输入的文本信息 返回值为char型的数组 例子 PasswordFieldDemo java 8 3 9JTextArea组件 创建一多行文本域 可以进行编辑 JTextArea类提供的常用方法 append Stringstr 将指定文本添加到文档末尾 insert Stringstr intpos 将指定文本插入到指定位置 replaceRange Stringstr intstart intend 将新文本替换指定位置开始到指定位置结束的文本 getColumnWidth 获取列的宽度 getLineCount 获取文本区包含的行数 getPreferredSize 返回文本区的首选大小 getRows 返回文本域的行数 setLineWrap booleanb 是否自动换行 默认为false例子 TextAreaDemo java 8 4常用的布局管理器 布局管理器负责管理组件在容器中的排列方式 为了支持Java的跨平台性 引入了布局管理器 布局管理器可以用setLayout 方法进行设定 getContentPane setLayout LayoutManagermgr 若不使用布局管理器 则将参数设置为null getContentPane setLayout null 若不使用布局管理器 则必须使用直接定位的方式排列所有组件 缺点是不能保证在其他平台上能够正确显示 8 4 1不使用布局管理器 略 8 4 2FlowLayout布局管理器FlowLayout类实现的布局管理器称为流布局管理器 排列方式 首先在一行上排列组件 若没有足够的空间 则回行显示 当容器大小发生变化时 按此规则重新排列组件 流布局管理器默认居中显示组件 可通过setAlignment 方法进行设定 setAlignment intalign align可选值 FlowLayout LEFTFlowLayout CENTERFlowLayout RIGHT FlowLayout布局管理器默认组件间的距离 水平 垂直 为5像素 可用setHgap inthgap 和setVgap intvgap 进行设置例子 FlowLayoutDemo java 8 4 3BorderLayout布局管理器 即边界布局管理器 布局方式 将窗口划分为5个部分 边界布局管理器为JFrame窗体的默认布局管理器 若容器采用了边界布局管理器 在将组件添加到容器时 必须指定其显示位置 指定方法如下 add Componentcomp Objectconstraints comp 被添加的组件 constraints 显示位置 可选值为BorderLayout的常量值 BorderLayout CENTER BorderLayout NORTH BorderLayout SOUTH BorderLayout WEST BorderLayout EAST BorderLayout布局管理器默认组件间的水平 垂直距离均为0像素 可通过setHgap inthgap 和setVgap intvgap 进行设定 例子 BorderLayoutDemo java 8 4 4GridLayout布局管理器 即网格布局管理器 布局方式 将容器按照用户的设置平均分成若干网格 可通过GridLayout 构造函数进行指定 GridLayout introws intcols 说明 rows 0 cols 0 容器先按行进行排列 当组件个数大于rows时 再增加一列 rows 0 cols 0 容器先按列进行排列 当组件数大于cols时 再增加一行 rows 0 cols 0 容器先按行进行排列 当组件个数大于rows时 再增加一列 rows 0 cols 0 组件个数大于rows cols时 再增加一列 GridLayout布局管理器默认组件间水平 垂直距离均为0像素 可通过setHgap int 和setVgap int 进行设定 例子 GridLayoutDemo java 8 5常用的面板 面板可以添加到JFrame窗体中 子面板可以添加到上一层面板中 可以实现对所有组件进行分层管理 不同关系的组件采用不同的布局管理方式 使界面更美观 8 5 1JPanel面板 JPanel默认采用FlowLayout布局管理方式 例子 PanelDemo java 8 5 2JScrollPane面板 为组件提供带滚动条的面板 JScrollPane类提供的常用方法setViewportView Componentview 设置在面板中显示的组件 setHorizontalScrollBarPolicy int 设置水平滚动条的显示方式 setVerticalScrollBarPolicy int 设置垂直滚动条的显示方式 setWheelScrollingEnabled false 设置滚动条是否支持鼠标滚轮 JScrollPane类提供的滚动条的显示方式 静态常量 HORIZONTAL SCROLLBAR AS NEEDED 需要时显示 HORIZONTAL SCROLLBAR NEVER 水平滚动条永不显示 HORIZONTAL SCROLLBAR ALWAYS 水平滚动条一直显示 VERTICAL SCROLLBAR AS NEEDED 需要时显示 VERTICAL SCROLLBAR NEVER 垂直滚动条永不显示 VERTICAL SCROLLBAR ALWAYS 垂直滚动条一直显示 例子 ScrollPaneDemo java8 6常用事件处理8 6 1动作事件处理动作事件由ActionEvent类捕获 最常用的是当单击按钮后发出的动作事件 可通过实现ActionListener接口处理相应的动作事件 ActionListener接口的原型如下 publicinterfaceActionListenerextendsEventListener publicvoidactionPerformed ActionEvente ActionEvent类提供的常用方法 getSource 获取触发此事件的对象 返回类型为Object getActionCommand 获取与当前动作相关的命令字符串 返回类型为String 例子 ActionEventDemo java 8 6 2焦点事件处理 焦点事件由FocusEvent类捕获 对于焦点事件可以通过实现FocusListener接口处理相应的事件 FocusListener接口原型 publicinterfaceFocusListenerextendsEventListener publicvoidfocusGained FocusEvente publicvoidfocusLost FocusEvente 8 6 2焦点事件处理 FocusEvent类比较常用的方法getSource 获取触发事件的目标对象 例子 FocusEventDemo java8 6 3鼠标事件处理MouseEvent类捕获鼠标事件 可通过MouseListener接口处理鼠标事件 MouseListener有5个抽象方法 下页 publicinterfaceMouseListenerextendsEventListener 鼠标进入时触发publicvoidmouseEntered MouseEvente 鼠标按下时触发publicvoidmousePressed MouseEvente 鼠标释放时触发publicvoidmouseReleased MouseEvente 鼠标单击时触发publicvoidmouseClicked MouseEvente 鼠标移出时触发publicvoidmouseExited MouseEvente MouseEvent类提供的常用方法getSource 返回触发此事件的对象 事件源 返回值为Object类型 getButton 获取鼠标按下 释放 单击时的键 可由MouseEvent的静态常量表示 getClickCount 获取单击的按键次数 表8 17MouseEvent类中代表鼠标按键的静态常量 例子 MouseEventDemo java 8 6 4键盘事件处理 键盘事件由KeyEvent类捕获 可以通过KeyListener接口处理相应的键盘事件 KeyListener定义了3个抽象方法 分别为 publicinterfaceKeyListenerextendsEventListener 发生击键动作时触发publicvoidkeyTyped KeyEvente 键按下时触发publicvoidkeyPressed KeyEvente 键释放时触发publicvoidkeyReleased KeyEvente KeyEvent类提供的常用方法getSource 获取触发此事件的对象 事件源 返回值为Object类型 getKeyCode 与此事件相关联的键的整数 getKeyChar 触发事件键的字符 getKeyText intkeyCode 用来获取描述keyCode的标签 如A F1 HOME等 isActionKey 查看事件中的键是否为动作键 isControlDown 查看事件中Ctrl键是否按下 若按下 则返回true isAltDown 查看事件中Alt键是否被按下 若按下 则返回true isShiftDown 查看事件中Shift键是否被按下 若按下 则返回true KeyEvent类中以 VK 开头的静态常量代表各个键的keyCode 可以通过这些静态常量判断事件中的按键 以及获得按键的标签 例子 KeyEventDemo java
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!