第8章Swing图形用户界面程序设计课件.ppt
《第8章Swing图形用户界面程序设计课件.ppt》由会员分享,可在线阅读,更多相关《第8章Swing图形用户界面程序设计课件.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第第第 8 8 8 章章章章章章 Swing Swing Swing图形用户界面程序设计图形用户界面程序设计图形用户界面程序设计图形用户界面程序设计图形用户界面程序设计图形用户界面程序设计2/17/20231本章总体纲要基本基本GUI组件组件 布局管理器布局管理器事件处理模型事件处理模型菜单菜单2/17/20232简介图形用户界面图形用户界面(GUI)数据的图形显示形式数据的图形显示形式友好的交互方式友好的交互方式简化计算机软件的学习过程简化计算机软件的学习过程GUI示例示例C:Program FilesJavajdk1.6.0demojfcSwingSet2GUI组件组件:Labels
2、,Text fields,Buttons,等等等等2/17/20233Swing整体介绍Swing GUI 组件组件所在的包所在的包:javax.swingSwing组件的平台相关性较小组件的平台相关性较小(lightweight)早期版本的早期版本的GUI组件组件所在的包所在的包:java.awt与平台相关性较强与平台相关性较强2/17/20234JComponent组件类的层次结构组件类的层次结构java.lang.Object|+-java.awt.Component|+-java.awt.Container|+-javax.swing.JComponentJComponent大多数大多
3、数Swing组件类父类组件类父类2/17/20235Swing 组件容器容器各种组件必须放在容器各种组件必须放在容器容器本身也是一种组件容器本身也是一种组件分类分类顶层容器顶层容器其它容器其它容器组件组件基本控制组件基本控制组件不可编辑的信息显示组件不可编辑的信息显示组件可编辑的信息显示组件可编辑的信息显示组件2/17/20236SwingSwing组件从功能上分可分为:组件从功能上分可分为:顶层容器顶层容器:JFrame,JApplet,JDialog,JWindow共共4个个中间容器:中间容器:JPanel,JScrollPane,JSplitPane,JToolBar特殊容器:特殊容器:
4、在在GUI上起特殊作用的中间层,如上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.基本控件:基本控件:实现人际交互的组件,如实现人际交互的组件,如JButton,JComboBox,JList,JMenu,JSlider,JTextField。不可编辑信息的显示不可编辑信息的显示:向用户显示不可编辑信息的组件,:向用户显示不可编辑信息的组件,例如例如JLabel,JProgressBar,ToolTip。可编辑信息的显示可编辑信息的显示:向用户显示能被编辑的格式化信息:向用户显示能被编辑的格式化信息的组件,如的组件,如JColorChoose
5、r,JFileChoose,JFileChooser,JTable,JTextArea。表表5-1列出了常见的列出了常见的Swing组件,组件,其方法和属性请查阅其方法和属性请查阅API文档。文档。2/17/20237类类描述描述AbstractButton按按钮钮的抽象的抽象类类 ButtonGroup封装一封装一组组互斥的按互斥的按钮钮 ImageIcon封装封装图标图标 JButtonSwing的按的按钮类钮类 JCheckBoxSwing的复的复选选框框类类 JComboBox封装封装组组合框合框(下拉式菜下拉式菜单单和文本框的和文本框的组组合合).JLabelSwing版的版的标签标
6、签 JRadioButtonSwing版的版的单选单选按按钮钮 JScrollPane封装封装滚动滚动窗口窗口 JTabbedPane封装封装选项选项窗口窗口 JTable封装表格控件封装表格控件 JTextFieldSwing版的文本域版的文本域 常见的常见的Swing组件组件2/17/20238一些GUI组件标签标签(JLabel)文本框文本框(JTextField)按钮按钮(JButton)复选框复选框(JCheckBox)组合框组合框(JComboBox)文本文本(JTextArea)框架框架(JFrame)面板面板(JPanel)2/17/20239标签(JLabel)标签标签为为G
7、UI提供文本提供文本(主要主要)或图像或图像(也可以也可以)信息信息对应类对应类(JLabel)(JComponent的子类的子类)可以显示可以显示:单行的只读的文本信息单行的只读的文本信息图像图像同时显示文本与图像信息同时显示文本与图像信息程序一般不修改标签的内容程序一般不修改标签的内容2/17/202310文本框(JTextField)文本框文本框(JTextField)显示单行的文本信息显示单行的文本信息JTextField extends JTextComponent构造函数:构造函数:Public JTextField();Public JTextField(String text)
8、;Public JTextField(int columns);Public JTextField(String text,int columns);String getText();/获得当前包含在文本框中的字符串获得当前包含在文本框中的字符串void setText(String str);/为设置文本为设置文本2/17/202311按钮(JButton)当鼠标左键单击按钮组件时,能触发特定当鼠标左键单击按钮组件时,能触发特定的事件的事件在在Java中中,广义的按钮包括广义的按钮包括:命令式按钮命令式按钮(JButton)复选框复选框(JCheckBox)单选按钮单选按钮(JRadioBu
9、tton)2/17/202312按钮类的层次结构javax.swing.JComponentjavax.swing.AbstractButtonjavax.swing.JButtonjavax.swing.JToggleButtonjavax.swing.JCheckBoxjavax.swing.JRadioButton2/17/202313组合框(JComboBox)组合框组合框(JComboBox)可以从下拉式的列表框中选取其中的列表项可以从下拉式的列表框中选取其中的列表项有时也称为下拉框有时也称为下拉框(drop-down list)类类JComboBox中的方法中的方法getSelec
10、tedIndex()返回当前被选中的项返回当前被选中的项setMaximumRowCount(n)设置最多显示列表项的项数设置最多显示列表项的项数滚动条滚动条(Scrollbar)会自动加上会自动加上2/17/202314框架(JFrame)类类 JFrame 是是java.awt.Frame的子类的子类在在Swing的组件中的组件中,JFrame 并不全是由并不全是由Java编写编写的的是一种与平台关系比较密切的组件是一种与平台关系比较密切的组件(Heavyweight component)java.lang.Object|+-java.awt.Component|+-java.awt.Co
11、ntainer|+-java.awt.Window|+-java.awt.Frame|+-javax.swing.JFrame2/17/202315面板(JPanel)一种中间容器,用来组成其它组件一种中间容器,用来组成其它组件可以添加各种组件可以添加各种组件(包括面板组件包括面板组件)面板面板(JPanel)的大小由它所包含的组件决定的大小由它所包含的组件决定当组件个数增加,面板当组件个数增加,面板(JPanel)也会随之而增也会随之而增大大2/17/202316SwingSwing组件不能直接添加到顶层容器中,组件不能直接添加到顶层容器中,它必须添加到一个与它必须添加到一个与Swing顶层
12、容器相关顶层容器相关联的内容面板(联的内容面板(Content Pane)上。)上。内容面板是顶层容器包含的一个普通容器,内容面板是顶层容器包含的一个普通容器,它是一个轻量级组件。基本规则如下:它是一个轻量级组件。基本规则如下:把把Swing组件放入一个顶层组件放入一个顶层Swing容器的内容容器的内容面板上面板上2/17/202317Swing对对JFrame添加组件有两种方式:添加组件有两种方式:1.用用getContentPane()方法获得方法获得JFrame的内容面板,的内容面板,再对其加入组件:再对其加入组件:frame.getContentPane().add(childComp
13、onent)2.建立一个建立一个Jpanel或或 JDesktopPane之类的中间容器,把组件添加之类的中间容器,把组件添加到容器中,用到容器中,用setContentPane()方法把该容器置为方法把该容器置为JFrame的内的内容面板:容面板:Jpanel contentPane=new Jpanel();/把其它组件添加到把其它组件添加到Jpanel中中;frame.setContentPane(contentPane);/把把contentPane对象设置成为对象设置成为frame的内容面板的内容面板2/17/202318示例示例JFrame app=new JFrame(文本编辑框
14、例程文本编辑框例程);app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);app.setSize(320,120);Container c=app.getContentPane();c.setLayout(new FlowLayout();JTextField t=new JTextField(“正常文本正常文本:”,8),new JTextField(“显示显示”,15),new JTextField(密码文本密码文本:,8),new JPasswordField(隐藏隐藏,15);t0.setEditable(false);t2.setEd
15、itable(false);for(int i=0;i4;i+)c.add(ti);app.setVisible(true);J_Text获得获得JFrame的的内容面板内容面板添加组件到添加组件到JFrame的内容面板的内容面板2/17/202319示例示例 Container c=getContentPane();c.setLayout(new FlowLayout();/创建命令式按钮并添加到框架中创建命令式按钮并添加到框架中 ImageIcon ic=new ImageIcon(left.gif),new ImageIcon(right.gif);JButton b=new JButt
16、on(左左,ic0),new JButton(中间中间),new JButton(右右,ic1);for(i=0;i b.length;i+)c.add(bi);/创建复选框并添加到框架中创建复选框并添加到框架中 JCheckBox ck=new JCheckBox(左左),new JCheckBox(右右);for(i=0;ick.length;i+)c.add(cki);cki.setSelected(true);/for循环结束循环结束 J_Button将三个将三个Button按钮添按钮添加到内容面板加到内容面板选中复选框选中复选框/创建单选按钮并添加到框架中创建单选按钮并添加到框架中
17、JRadioButton r=new JRadioButton(左左),new JRadioButton(右右);ButtonGroup rg=new ButtonGroup();for(i=0;i r.length;i+)c.add(ri);rg.add(ri);/for循环结束循环结束 r0.setSelected(true);r1.setSelected(false);联动的联动的按钮组按钮组2/17/202320本章总体纲要基本基本GUI组件组件 布局管理器布局管理器事件处理模型事件处理模型菜单菜单2/17/202321布局管理器用来控制组件在容器中的布局方式用来控制组件在容器中的布局
18、方式应当尽量利用已有的基本布局方式应当尽量利用已有的基本布局方式布局管理器处理组件布局的大部分细节布局管理器处理组件布局的大部分细节2/17/202322布局管理器FlowLayoutBorderLayoutCardLayoutGridLayout自定义的布局管理器自定义的布局管理器2/17/202323FlowLayout是一种最基本的布局管理器是一种最基本的布局管理器是是 java.awt.Applet、java.awt.Panel 和和 javax.swing.JPanel的默认布局方式的默认布局方式在容器中,从左到右依次放置在容器中,从左到右依次放置GUI组件组件当组件排到容器一行的末
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Swing 图形 用户界面 程序设计 课件
限制150内