《图形用户界面 》PPT课件

上传人:san****019 文档编号:25659377 上传时间:2021-07-29 格式:PPT 页数:44 大小:703KB
返回 下载 相关 举报
《图形用户界面 》PPT课件_第1页
第1页 / 共44页
《图形用户界面 》PPT课件_第2页
第2页 / 共44页
《图形用户界面 》PPT课件_第3页
第3页 / 共44页
点击查看更多>>
资源描述
第十一章图形用户界面(GUI)设计 2 学习目标: GUI相关概念 布局管理器的概念和使用方法 事件处理的方法和过程 常用Swing组件的使用 3 11.1 图形用户界面概述(1) java.awt包AWT组件重组件Button( 按 钮 ) 、TextField( 文 本 框 )( 2) javax.swing包 Swing组 件 轻 组 件JButton( 按 钮 ) 、JTextField( 文 本 框 )使 用 Swing组 件使 用 AWT组 件 4 观 感 Windows观 感Java观 感 Motif观 感 5 11.1 图形用户界面概述2、组件、容器、布局和观感( 1) 组 件 : 可 图 形 化 的 方 式 显 示 在 屏 幕 上 ,能 够 与 用 户 交 互 。( 2) 容 器 : 一 种 特 殊 的 组 件 , 能 容 纳 其 他 组 件 或 容 器 。 顶 层 容 器 : JFrame、 JApplet、 JWindow、 JDialog 中 间 层 容 器 : JPanel、 JScrollPane、 JTabbedPane 添 加 组 件 : add() 删 除 组 件 : remove() 6 (3)布局: 专门管理组件在容器中的布局的工具布局管理器(4)观感: 决定swing应用程序的外观。默认Java观感(又称为Metal观感) 11.1 图形用户界面概述 7 11.2 布局管理器 Java中的布局类型包括以下几种:- FlowLayout(流式布局)- BorderLayout (边界布局)- CardLayout(卡片布局) - GridLayout(网格布局) - GridBagLayout(网格包布局) 8 一 种 最 简 单 的 布 局 。 组 件 一 个 接 一 个 从 左 到 右 、 从上 到 下 一 排 一 排 依 次 放 在 容 器 中 。 默 认 的 每 一 行 的 组件 都 居 中 对 齐 , 水 平 和 垂 直 间 隙 是 5个 像 素 。 FlowLayout是 Panel、 Jpanel、 Applet的 默 认 布局 管 理 器构 造 方 法 :FlowLayout();FlowLayout(int align);FlowLayout(int align,int hgap,int vgap);12.2.2 FlowLayout布局 9 import java.awt.*;import javax.swing.*;public class FlowLayoutDemo extends JFramepublic FlowLayoutDemo()super(FlowLayout布 局 );Container c=getContentPane();FlowLayout f=new FlowLayout(FlowLayout.LEFT,10,10);c.setLayout(f);for(int i=1;i=10;i+)c.add(new JButton(按 钮 +i);public static void main(String args)JFrame frame=new FlowLayoutDemo();frame.setSize(250,200);frame.setVisible(true); 10 又 叫 边 界 布 局 管 理 器 。 将 容 器 分 为 东 (EAST)、 南(SOUTH)、 西 (WEST)、 北 (NORTH)、 中 (CENTER)五 个 区 。按 照 “ 上 北 下 南 , 左 西 右 东 ” 的 规 则 分 配Window、 Dialog、 Frame的 默 认 布 局 ; JFrame、JApplet、 JDialog的 内 容 窗 格 的 默 认 布 局构 造 方 法 :BorderLayout()BorderLayout(int hgap,int vgap)11.2.3 BorderLayout布局 11 将 布 局 分 为 若 干 个 大 小 相 等 的 网 格 。 当 容 器 尺 寸 改变 时 , 组 件 大 小 改 变 , 但 相 对 位 置 不 变构 造 方 法 :GridLayout()GridLayout(int rows,int cols)GridLayout(int rows,int cols,int hgap,int vgap)11.2.4 GridLayout布局 12 11.2.5 CardLayout类 似 于 卡 片 的 布 局 设 置CardLayout的主要方法:first(Container parent):翻转到容器的第一张卡片last(Container parent):翻转到容器的最后一张卡片next(Container parent):翻转到容器的下一张卡片previous(Container parent):翻转到容器的上一张卡片show(Container parent, String name): 翻转到已添加的指定name的组件 13 使 用 GridBagLayout实 现 如 图 所 示 布 局效 果11.2.6GridBagLayout 14 BoxLayout盒 式 布 局 的 容 器 将 组 件 排 列 在 一 行 或 一 列 , 这 取 决 于创 建 盒 式 布 局 对 象 时 是 否 指 定 行 排 列 还 是 列 排 列 。构 造 方 法 :BoxLayout(Container target,int axis) X_AXIS Y_AXISBox类 :createHorizontalBox()createVerticalBox()createHorizontalStruct(int width)createVerticalStruct(int height)11.2.7 Swing布局管理器 15 11.3.1 事件处理模式Java 的事件处理模型:授权处理模型 事件源:产生事件的组件,如JButton。 事件对象:触发事件后系统会自动创建事件类的对象,XxxEvent。 监听器:处理事件的实体,XxxListener。 16 授权处理模型 17 11.3.3 事件处理方法 (1)实现事件监听器接口法: 定义类来实现这些接口,实现接口中所有的事件处理方法,用不到的写成空方法。 e.getSource()返回事件源对象class ButtonClick implements ActionListener public void actionPerformed(ActionEvent e) /具 体 处 理 事 件 的 代 码 if(e.getSource=button1). . . . . . 18 例一: 19 例二: 20 例 三 : 21 例 四 : 22 总 结 :图 形 用 户 界 面 基 本 知 识布 局 管 理 器事 件 处 理 23 11.4 常 用 Swing组 件常 用 容 器 组 件JFrameJPanelJScrollPane、 JSplitPane、 JInternalFrameJButtonJTextField、 JPasswordField、 JTextAreaJCheckBoxJRadioButtonJListJComboBox 24 JFrame1、简介: JFrame是带标题、边框、窗口状态调节按钮的顶层窗口。 可以是构建Swing GUI应用程序的主窗口,也可以是附属于其他窗口的弹出窗口。 每一个Swing GUI应用程序都至少应包含一个窗体 默认布局为BorderLayout。 25 2、 构 造 方 法 JFrame( )JFrame(String Title)3、 常 用 方 法 :setVisible(true)setSize(长 ,宽 ) setResizable(boolean b)setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)JFrame窗体 26 import java.awt.*;import javax.swing.*;public class JFrameDemo extends JFramepublic JFrameDemo()super(myJFrame);Container c=getContentPane();JButton b1=new JButton(按 钮 1);c.add(b1);public static void main(String args)JFrameDemo frame=new JFrameDemo();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400,100);frame.setVisible(true); 举例1:JFrame的应用 27 JPanel JPanel:一种中间容器,可以容纳组件,但他本身必须添加到其他容器中使用。 为了能够更好的管理各组件,我们可以创建多个JPanel。 创建一个面板,默认布局FlowLayout。- new JPanel( ) 28 把一个组件放入一个滚动窗格,有滚动条。 - new JScrollPane(component c )被分成两部分的容器内部窗格JScrollPane、JSplitPane、JInternalFrame举 例 : ScrollDemo.java推 荐 : Sun官 网 提 供 的 swing的 介 绍http:/ 29 JSplitPane 30 JTextField文本框 构造方法: JTextField( ) , JTextField(int columns) ,JTextField(String text) ,JTextField(String text, int columns) 常用方法: String getText( ) void setText(String text) void setEditable(boolean b) void setHorizontalAlignment(int alignment) 31 JPasswordField密码框 构造方法同JTextField 常用方法: char getPassword( ) char getEchoChar( ) void setEchoChar(char c) 32 JTextArea文本域(多行) 构造方法 JTextArea( ) ,JTextArea(int rows, int cols) ,JTextArea(String text) ,JTextArea(String text, int rows, int cols) 使用JScrollPane加滚动条 常用方法: String getText( ) void setText(String text) void copy() void cut() void paste() 33 JButton按钮 构造方法 可设置文本和图标 常用方法: void setMnemonic(int c) 设置键盘激活 34 JLabel标签构造方法 可设置文本、对齐方式和图标 常用方法: String getText( ) void setText(String text) 35 JCheckBox复选框构造方法 JCheckBox(Icon icon ,boolean selected ) JcheckBox(String text , boolean selected ) JCheckBox(String text, Icon icon) JCheckBox(String text, Icon icon, boolean selected) 常用方法: boolean isSelected() 36 JRadioButton单选按钮 构造 创建组 ButtonGroup group=new ButtonGroup(); 向组中添加项 JRadioButton b1=new JRadioButton(“男”); JRadioButton b2=new JRadioButton(“女”); group.add(b1); group.add(bw); 常用方法: boolean isSelected() 37 JComboBox下拉列表下拉列表组件JComboBox 构造 JComboBox( ) JComboBox(Object items) 常用方法: void setSelectedIndex() object getSelectedItem() 38 11.5 高级组件 JSlider 菜单 JMenuBar、JMenu、JMenuItem、JPopupMenu JTable JTabbedPane 对话框 JOptionPane、JFileChooser 39 11.5.2 菜单1、JMenuBar菜单条 一个窗口只能有一个菜单条。JMenuBar menuBar=new JMenuBar();frame.setJMenuBar(menuBar);2、 JMenu菜 单 一 个 菜 单 条 上 可 以 有 多 个 菜 单 。JMenu menu1=new JMenu(“文 件 ”);JMenu menu2=new JMenu(“帮 助 ”);menuBar.add(menu1); menuBar.add(menu2); 40 11.5.2 菜单组件3、JMenuIterm菜单项 一个菜单上可以有多个菜单项。JMenuItem item1=new JMenuItem(“打 开 ”);JMenuItem item2=new JMenuItem(“退 出 ”);menu1.add(item1);menu1.addSeparator();menu1.add(item2); 41 11.5.3表格组件JTable构造方法 JTable(Object data ,Object columnName ) DefaultTableModel myData = new DefaultTableModel(Object data ,Object column ); JTable table = new JTable(myData); 当组件需要更新显示时:table.epaint() 表 内 容 表 头表 内 容 表 头 42 DefaultTableModel类: 构造方法: DefaultTableModel(Object data, Object columnNames) DefaultTableModel(object columnNames,int rowCount) 主要方法: addRow(Object rowData) addColumn(Object columnName) setValueAt(Object aValue, int row,int col) getValueAt(int row,int col) 11.5.3表格组件JTableJTableDemo.java 43 JTabbedPane 44 本章小结常用布局管理器的使用Java的事件处理机制Java的常用组件Java的高级组件
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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