Swing组件.ppt

上传人:s****8 文档编号:67209601 上传时间:2022-12-24 格式:PPT 页数:25 大小:189KB
返回 下载 相关 举报
Swing组件.ppt_第1页
第1页 / 共25页
Swing组件.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《Swing组件.ppt》由会员分享,可在线阅读,更多相关《Swing组件.ppt(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Swing组件组件Swing的特性的特性v从从AWT继承继承v100%的纯的纯Java实现实现v可插入的外观感觉可插入的外观感觉vSwing组件的多样化组件的多样化vMVC(Model-View-Control)体系结构体系结构v可存取性支持(实现了可存取性支持(实现了Accessible接口)接口)v支持键盘操作支持键盘操作v设置边框设置边框(Border)v使用图标使用图标(Icon)Swing组件层次组件层次增加增加Swing组件后类层次图组件后类层次图v在在javax.swing包中,定义了两种类型的组件:顶层容器和轻量级组件。包中,定义了两种类型的组件:顶层容器和轻量级组件。vjav

2、a.awt.Componentv java.awt.Containerv java.awt.Windowv java.awt.Framejavax.swing.JFramev java.awt.Dialogjavax.swing.JDialogv javax.swing.JWindowv java.awt.Panev java.awt.Appletjavax.swing.JAppletv javax.swing.BoxvJavax.swing.JComponet.续下页续下页 javax.swing.JComponent AbstractButton JButton JCheckBox JCo

3、lorChooser JToggleButton JRadioButton JComboBox JMenuItem JCheckBoxMenuItem JFileChooser Jmenu Jlabel JRadioButtonMenuItem Jpanel JPopupMenu JProgressBar Jslider JTabbedPane Jtable JToolBar JEditorPaneJTextPane Jtree JTextArea JTextComponentJTextFieldJPasswordField SwingSwing组件的使用组件的使用1、使用、使用Swing的基

4、本规则的基本规则把把Swing组件放入一个顶层组件放入一个顶层Swing容器中容器中避免使用非避免使用非Swing的重量级组件的重量级组件与与AWT不同,不同,Swing组件不能直接加到顶层组件不能直接加到顶层Swing容器中,它们必须加到一个与容器中,它们必须加到一个与Swing顶层容器相顶层容器相关的内容面板关的内容面板(content pane)上。上。不能用不能用add()方法向顶层容器加入组件方法向顶层容器加入组件用用getContentPane()方法获得一个方法获得一个Container对象,调用对象,调用该该Container对象的对象的add()方法加入方法加入Swing组件

5、组件缺省的布局策略是缺省的布局策略是BorderLayout 2、Swing组件的分类组件的分类Swing组件从功能上分可以划分为以下几类:组件从功能上分可以划分为以下几类:1)顶层容器)顶层容器(共四个共四个)JFrame,JApplet,JDialog,JWindow2)普通容器,即使用在各种不同情况下的中间容器普通容器,即使用在各种不同情况下的中间容器JPanel,JScrollPane,JSplitPane,JTabbedPane3)特殊容器,在特殊容器,在GUI上起特殊作用的中间容器上起特殊作用的中间容器JInternalFrame,JLayeredPane,JRootPane,JT

6、oolBar4)基本控件,实现人基本控件,实现人-机交互的组件机交互的组件JBtton,JComboBox,JList,JMenu,JSlider,JTextField5)不可编辑信息的显示不可编辑信息的显示Jlabel,JProgressBar,JToolTip6)可编辑的格式化信息的显示可编辑的格式化信息的显示JColorChooser,JFileChooser,JTable,JTextField,JTextArea,JTree总结总结JFrame、JApplet、Jdialog是是swing的底层的底层容器,是重量级容器;容器,是重量级容器;不可以把组件直接添加到底层容器中,而应不可以把

7、组件直接添加到底层容器中,而应当添加到各自对应的内容面板中;当添加到各自对应的内容面板中;不能对底层容器进行布局;不能对底层容器进行布局;可以对内容面板设置布局;所有内容面板的可以对内容面板设置布局;所有内容面板的默认布局是默认布局是BorderLayout.Swing 事件处理事件处理Swing事件事件1、Swing组件可以产生组件可以产生AWT包中的事件包中的事件2、有自己的事件包、有自己的事件包(javax.swing.event)3、Component类的五种事件类的五种事件4、能激活、能激活Container类的类的ContainerEvent事件的事件的Swing组件组件Swing

8、组件中的容器(如:组件中的容器(如:JFrame,JPane)复合组件(如:复合组件(如:JComboBox)vComponentEvent /组件移动、缩放、显示、隐藏组件移动、缩放、显示、隐藏vFocusEvent /获得或失去焦点获得或失去焦点vKeyEvent /在组件聚焦时,接收键盘输入在组件聚焦时,接收键盘输入vMouseEvent /鼠标点击和进、出测试区鼠标点击和进、出测试区vMouseMotionEvent /鼠标移动鼠标移动窗口与面板的使用窗口与面板的使用(Frame、Pane、Panel)JFrame的使用的使用最底层容器,默认不可见;最底层容器,默认不可见;构造函数:构

9、造函数:JFrame()JFrame(String title)JFrame的关闭的关闭setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);范例:范例:path:examch5JFrame1.javaJLayeredPane的使用的使用范例:范例:path:examch5JLayeredPane1.javaJLayeredPane2.javaJLayeredPane3.javaJInternalFrame的使用的使用(联系联系DesktopPane)可以最大化、最小化、关闭窗口、加入菜单等;可以最大化、最小化、关闭窗口、加入菜单等;是是lightwei

10、ght component,即不能单独出现;即不能单独出现;能利用能利用Look and Feel制定界面感观制定界面感观一般将一般将JInternalFrame假如假如DesktopPane(Virtual Desktop)构造函数:构造函数:JInternalFrame(String title,boolean resizeable,boolean closable,boolean maxmizable)JDesktopPane()范例范例 path:examch5JInternalFrame1.java范例说明:范例说明:开始有一个按钮与一个开始有一个按钮与一个JDesktopPane,

11、当用户按下按钮时,会在当用户按下按钮时,会在Desktop pane中产生一个中产生一个JInternalFrame并呈现并呈现Active状态。状态。JPanel的使用的使用常用容器之一常用容器之一有效利用他使版面管理更为容易;有效利用他使版面管理更为容易;支持支持double buffering,处理动画片更为流畅(无闪烁)处理动画片更为流畅(无闪烁)构造函数:构造函数:JPanel(LayoutManager layout,boolean isDoubleBuffered)范例范例 path:examch5JPanel1.java/利用利用JPanel排列排列5个个JLabel对象对象J

12、SplitPane的使用的使用分割面板,一次可将两个组件同时显示在两个显示区中;分割面板,一次可将两个组件同时显示在两个显示区中;可以设置水平分割或垂直分割;可以设置水平分割或垂直分割;还有其它常数可以选择;还有其它常数可以选择;构造函数:构造函数:JSplitPane(int newOrientation,boolean newContinuousLayout,Component LeftComponent,Component RightComponent)范例范例 path:examch5JSplitPane1.java/具有拖曳具有拖曳JTabbedPane的使用的使用如同放置文件的文件

13、夹如同放置文件的文件夹构造函数:构造函数:JTabbedPane(int tabPlacement)s/tabPlacement:指定摆放位置,指定摆放位置,TOP、BOTTOM、LEFT、RIGHT范例范例 path:examch5JTabbedPane1.java JTabbedPane2.java JScrollPane的使用的使用由由JViewPort与与JScollBar组成。组成。JView负责显示内容区域的大小负责显示内容区域的大小构造函数:构造函数:JScrollPane(Component view,int v,int h)v,h:滚动轴出现时机,如:滚动轴出现时机,如:HO

14、RIZONTAL_SCROLLBAR_AS_NEEDED范例范例 path:examch5JScrollPane1.java JScrollPane2.java 表格表格(Table)Table)的使用的使用JTable的使用的使用构造函数:构造函数:JTable(int numRows,int numColumns)JTable(Object rowData,Object columnNames)JTable(Vector rowData,Vector columnNames)范例:范例:examch8SimpleTable.javaexamch8TableModel2.javaexamch

15、8ColumnModelTest.javaexamch8SelectionModelDemo.javaexamch8AddRemoveCells.java表格与数据库:表格与数据库:Example25_27.javaJTable事件处理事件处理用用TableModelListener监听监听TableModelEvent事件事件用用tableChanged(TableModelEvent e)处理事件处理事件范例:范例:TableEventHandle.java树树(Tree)的使用的使用使用使用JTree组件组件JTree的类层次结构的类层次结构 java.lang.Objects java

16、.awt.Components java.awt.Container -javax.swing.JComponent -javax.swing.JTreeJTree的构造函数的构造函数JTree()/建立一棵系统默认的树建立一棵系统默认的树范例:范例:examch10InitialTree.java用用Hashtable构造构造Tree范例:范例:TreeDemo1.javaJTree上的每一个节点就代表一个上的每一个节点就代表一个TreeNode对象,对象,TreeNode本身是一个本身是一个Interface,之中定义了之中定义了7种有关部门节点的方法。种有关部门节点的方法。如:如:判断是

17、否为叶子节点判断是否为叶子节点 isLeaf()有几个子节点有几个子节点 getChildCount()父节点是谁父节点是谁 getParent()在实际应用中,一般采用在实际应用中,一般采用DefaultMutableTreeMode类,该类,该类实现了类实现了MutableTreeMode接口,主要定义了一些对节点接口,主要定义了一些对节点的处理方式,如:的处理方式,如:新增节点:新增节点:insert()删除节点:删除节点:remove()设置节点:设置节点:setUserObject()用用DefaultMutableTreeNode建立建立JTree范例:范例:TreeDemo2.j

18、ava用用DefaultTreeModel建立建立JTree范例:范例:TreeDemo3.java改变改变JTree的外观的外观Tree.putClientProperty(“JTree.lineStyle”,”None”)/Java默认值默认值Tree.putClientProperty(“JTree.lineStyle”,”Horizontal”)/文件夹间文件夹间Tree.putClientProperty(“JTree.lineStyle”,”Angled”)/直角连线直角连线UIManager.setLookAndFeel(“com.sun.java.swing.plaf.wind

19、ows.WindowsLookAndFeel”)/界面类型界面类型范例:范例:TreeDemo3.java更换更换JTree节点图案节点图案范例:范例:TreeDemo4.javaJTree的事件处理模式的事件处理模式处理处理TreeModeEvent事件事件当树的结构有任何改变时,例如节点值变了、新增或删除了节点当树的结构有任何改变时,例如节点值变了、新增或删除了节点等。等。必须实现必须实现TreeModelListener接口接口s void treeNodesChanged(TreeModelEvent e)s void treeNodesInserted(TreeModelEvent

20、e)s void treeNodesRemoveed(TreeModelEvent e)s void treeStructureChanged(TreeModelEvent e)TreeModelEvent的方法的方法s int getChildices()/返回子节点群的索引值返回子节点群的索引值sObject getChildren()/返回子节点群返回子节点群sObject getPath()/返回从返回从Root Node到到Leaf Node的节点的节点sTreePath getTreePath()/取得目前位置的取得目前位置的Tree PathsString toString()/

21、取得对象的字符串表示取得对象的字符串表示范例:范例:TreeDemo5.java TreeDemo6.javaJTree的事件处理模式的事件处理模式处理处理TreeSelectionEvent事件事件当我们在树上点选任何一个节点时,都会触发当我们在树上点选任何一个节点时,都会触发TreeSelectionEvent事件。事件。必须实现必须实现TreeSelectionListener接口,只有一个方法:接口,只有一个方法:s valueChanged(TreeSelectionEvent e)取得文件位置路径取得文件位置路径s System.getProperty(“user.dir”)/取得

22、用户当前工作目录取得用户当前工作目录取得文件分隔符取得文件分隔符sSystem.getProperty(“file.separator”)范例:范例:TreeDemo7.java对话框对话框(Option Pane与与Dialog)的使用的使用使用使用JDialog组件组件最复杂的构造函数最复杂的构造函数JDialog(Dialog owner,String title,Boolean modal)JDialog(Frame owner,String title,Boolean modal)在在JFfame上建立上建立JDialog范例:范例:examch11DialogDemo.java在在

23、JApplet上建立上建立JDialog由于在由于在JDialog的构造函数中,只能依附于的构造函数中,只能依附于Dialog或或Frame建立。建立。需利用需利用Component类提供的类提供的getParent()方法,找到方法,找到JApplet所属的所属的Frame容器,在容器,在JApplet上弹出上弹出JDialog.。范例:范例:examch11DialogAppletDemo.java使用使用JOptionPane类的静态方法类的静态方法一律为有模式对话框一律为有模式对话框1、输出、输出Message Dialog输出告知用户的相关信息输出告知用户的相关信息范例:范例:Mes

24、sageDialog.java2、输出、输出Confirm Dialog确认对话框(选择确认对话框(选择Yes或或No)范例:范例:ConfirmDialog.java3、输出、输出Input Dialog可以让用户输入相关信息,当用户按下确定按钮后,可以让用户输入相关信息,当用户按下确定按钮后,系统会得到用户所输入的信息。系统会得到用户所输入的信息。可以直接输入,也可以显示可以直接输入,也可以显示ComboBox组件让用户选组件让用户选择。择。范例:范例:InputDialog.java4、输出、输出Option Dialog可以让用户自行定义对话框类型,比较有弹性,最大的好处是可以改变可以

25、让用户自行定义对话框类型,比较有弹性,最大的好处是可以改变按钮上的文字。按钮上的文字。范例:范例:OptionDialog.java5、输出、输出Internal Dialog使用方法跟其他对话框一样,只是方法名字中多了使用方法跟其他对话框一样,只是方法名字中多了Internal,例如例如 showInternalMessageDialog()等等。等等。范例:范例:InternalDialog.java使用使用JOptionPane组件建立对话框组件建立对话框构造函数构造函数(最复杂的一个构造函数最复杂的一个构造函数)JOptionPane(Object message,int messag

26、eType,int optionType,Icon icon,Object options,Object initialValue)Object message/设置对话框上的提示文字设置对话框上的提示文字int messageType/设置对话框的类型(如设置对话框的类型(如:JOptionPane.QUESTION_MESSAGE)int optionType/设置按钮的类型(如设置按钮的类型(如:JOptionPane.OK_CANCEL_OPTION)Object options/用作更改按钮上的文字用作更改按钮上的文字Object initialValue/设置默认按钮设置默认按钮范

27、例:范例:OptionPaneDemo.java菜单与工具栏的使用菜单与工具栏的使用基本菜单的使用基本菜单的使用JMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem、JToolBar、JToolTips、JPopupMenuJMenuItem(String text,Icon icon)JMenuItem(String text,int mnemonic)/快捷键快捷键(Alt)addSeparator()/加入分隔线加入分隔线setAccelerator(KeyStroke.getKeyStrokr(N”,java.a

28、wt.Event.CTRL_MASK,false)范例:范例:examch12JMenuItem4.javaJMenuItem的事件处理的事件处理JMenuItem5.javaJCheckBoxMenuItem、RadioButtonMenuItem范例:范例:JCheckBoxMenuItem1.javaJRadioButtonMenuItem1.javaJToolBar使用使用JToolBar()创建一个工具条创建一个工具条s JToolBar toolbar=new JToolBar();使用使用add()将带图标的按钮加入到工具条中将带图标的按钮加入到工具条中s toolbar.add

29、(yellowBtn);/yellowBtn是是Jbutton类对象类对象将工具栏加到将工具栏加到Container中间容器中中间容器中sgetContainer.add(toolbar,BorderLayout.NORTH);JToolBar类方法:类方法:s public void setFloatable(boolean floats)/缺省是浮动的缺省是浮动的s public void addSeparator()/加入一个分隔标记加入一个分隔标记范例:范例:JToolBar1.javasJToolBar2.java在在JToolBar组件中加入组件中加入JToolTips范例:范例:

30、JToolBar3.javaJPopupMenu范例:范例:JPopupMenu1.java文件选择、颜色选择、分隔线的使用文件选择、颜色选择、分隔线的使用文件选择对话框的使用文件选择对话框的使用1、简单的、简单的JFileChooser对话框对话框范例:范例:examch13FileChooserDemo1.java2、建立可选择文件类型的、建立可选择文件类型的JFileChooser对话框对话框范例:范例:examch13FileFilterDemo.java3、建立具有特殊文件类型图标的、建立具有特殊文件类型图标的JFileChooser对话框对话框范例:范例:examch13FileI

31、conFilterDemo.java颜色选择对话框的使用颜色选择对话框的使用直接输出颜色对话框直接输出颜色对话框范例:范例:ColorChooserDemo1.java建立建立JColorChooser对象输出颜色对话框对象输出颜色对话框范例:范例:ColorChooserDemo2.java将将JColorChooser置于一般容器中显示置于一般容器中显示范例:范例:ColorChooserDemo3.java建立分隔线建立分隔线(JSeparator)范例:范例:SeparatorDemo1.java滑标滑标(JSlider)、时间控制时间控制(JTimer)、进度条进度条(JProgre

32、ss)等的使用等的使用滑标滑标(JSlider)范例范例:examch14SliderDemo3.java时间控制时间控制(JTimer)用用start()启动、用启动、用stop()停止停止计时器产生动作事件计时器产生动作事件(ActionEvent)范例范例:TimerDemo1.java进度条进度条(JProgressBar)范例范例:ProgressBarDemo.javaJProgressMonitor组件组件范例范例:ProgressMonitorDemo.javaJProgressMonitorInputStream组件组件/范例范例:PMonitorInputStream.java/文件读文件读/写时的进度写时的进度范例范例:PMInputStreamFixed.java/文件读文件读/写时的进度写时的进度创造用户最熟悉的环境创造用户最熟悉的环境(Look and Feel)就是用户看到的环境即是自己最熟悉的环境。就是用户看到的环境即是自己最熟悉的环境。范例:范例:examch15LF1.javas在JFrame中加入了JMenuBar,JLabel,JButton,sJCheckBox,JList组件MainFrame.javas在JFrame中加入了目录菜单和工具栏组件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com