版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、池州学院池州学院数学计算机科学系数学计算机科学系通过对本章的学习,了解通过对本章的学习,了解AWT包和包和Swing包,熟悉其中的组件,学会包,熟悉其中的组件,学会使用组件创建图形用户界面。使用组件创建图形用户界面。布局管理器、事件处理机制、组件布局管理器、事件处理机制、组件综合运用。综合运用。理论讲解与上机实践相结合。理论讲解与上机实践相结合。池州学院池州学院数学计算机科学系数学计算机科学系AWT:抽象窗口工具包,是:抽象窗口工具包,是API(应用接口)为(应用接口)为Java程序提供的建立图形用户界面的工具集。在程序提供的建立图形用户界面的工具集。在AWT组组件中,由于控制组件外观的对等类
2、与具体平台相关,件中,由于控制组件外观的对等类与具体平台相关,使得使得AWT组件总是只有与本机相关的外观。组件总是只有与本机相关的外观。 Swing也是一个包,提供了完全的用户界面组件也是一个包,提供了完全的用户界面组件集合,是在集合,是在AWT基础上的扩展。基础上的扩展。 Swing组件是用组件是用Java实现的轻量级(实现的轻量级( light-weight)组件,没有本地代码,不依赖操作系统的支)组件,没有本地代码,不依赖操作系统的支持持.Swing 组件概述组件概述池州学院池州学院数学计算机科学系数学计算机科学系u 简单示例简单示例 Swing 组件概述组件概述池州学院池州学院数学计算
3、机科学系数学计算机科学系uSwingSwing的层次结构的层次结构n顶层容器顶层容器pJFrameJFrame:用来设计类似于:用来设计类似于WindowsWindows系统中的窗口形式的系统中的窗口形式的应用程序。应用程序。pJDialogJDialog:用来设计和实现对话框。:用来设计和实现对话框。pJAppletJApplet:用来设计可以嵌入在网页中的:用来设计可以嵌入在网页中的JavaJava小程序。小程序。p注意:顶层容器中不能直接添加注意:顶层容器中不能直接添加SwingSwing组件,必须先调组件,必须先调用顶层容器的用顶层容器的getContentPanegetContent
4、Pane()()方法获得顶层容器的内方法获得顶层容器的内容面板,然后将组件加到面板中。容面板,然后将组件加到面板中。 Swing 组件概述组件概述池州学院池州学院数学计算机科学系数学计算机科学系nSwingSwing组件组件p容器组件容器组件能包含其他组件的特殊组件。如能包含其他组件的特殊组件。如JPanelJPanel、JTabbedPaneJTabbedPane(选项卡面板)选项卡面板) 、JScrollPaneJScrollPane等。等。p非容器组件非容器组件JLabelJLabel、JButtonJButton、JComboBoxJComboBox、JListJList、JTextF
5、ieldJTextField等等向容器组件添加非容器组件需调用容器组件的向容器组件添加非容器组件需调用容器组件的add(Componentadd(Component comp) comp)方法直接添加上去。方法直接添加上去。例题例题JPanelJPanel panel=new panel=new JpanelJpanel( );( );JLabelJLabel label=new label=new JLabel(“helloJLabel(“hello”);”);Panel.add(labelPanel.add(label););pSwingSwing组件最终都必须放在顶层容器中。组件最终都必
6、须放在顶层容器中。Swing 组件概述组件概述池州学院池州学院数学计算机科学系数学计算机科学系nJComponentJComponentp 是所有是所有SwingSwing组件的基类,实现了所有组件的基类,实现了所有SwingSwing组组件公共的功能。件公共的功能。p 功能功能边框设置:边框设置:setBordersetBorder()()双缓冲区:双缓冲区:JComponentJComponent有默认的双缓冲区,若关闭缓有默认的双缓冲区,若关闭缓冲区,可以用组件调用冲区,可以用组件调用setDoubleBuffered(falsesetDoubleBuffered(false) )方方法
7、。法。提示信息:提示信息:setTooltipTextsetTooltipText( )( )键盘导航:键盘导航:registerKeyboardActionregisterKeyboardAction()()能使用户用键能使用户用键盘代替鼠标来驱动组件;盘代替鼠标来驱动组件;可插入外观:用可插入外观:用UIManager.setLookAndFeelUIManager.setLookAndFeel( )( )可以可以设置需要的外观。设置需要的外观。支持布局支持布局Swing 组件概述组件概述池州学院池州学院数学计算机科学系数学计算机科学系uJFrameJFramen构造方法构造方法pPubl
8、ic Public JFrameJFrame( ):( ):创建一个框架。创建一个框架。pPublic Public JFrame(StringJFrame(String title) title):创建一个标题内容为参数:创建一个标题内容为参数指定值的框架。指定值的框架。n加入组件的方法加入组件的方法ppublic Container public Container getContentPanegetContentPane( ):( ):JFrameJFrame的方法,的方法,用来获得用来获得JFrameJFrame的内容面板,返回值为的内容面板,返回值为ContainerContaine
9、r类对象。类对象。ppublic void public void add(Componentadd(Component comp,Objectcomp,Object constraints): Containerconstraints): Container的方法,用来将参数的方法,用来将参数compcomp指定的指定的组件加入到容器中。组件加入到容器中。constraintsconstraints表示布局方面的规定。表示布局方面的规定。框框 架架(可以独立显示的顶层容器)(可以独立显示的顶层容器)池州学院池州学院数学计算机科学系数学计算机科学系n设置关闭按钮功能的方法设置关闭按钮功能的方法
10、psetDefaultCloseOperation(intsetDefaultCloseOperation(int operation):JFrameoperation):JFrame的的方法,用来设置单击关闭按钮时程序执行的操作。具体方法,用来设置单击关闭按钮时程序执行的操作。具体操作由参数指定。操作由参数指定。DO_NOTHING_ON_CLOSEDO_NOTHING_ON_CLOSE:单击关闭按钮后不做任何事。需:单击关闭按钮后不做任何事。需调用窗口监听器中的调用窗口监听器中的windowClosingwindowClosing( )( )方法执行其他动作方法执行其他动作。HIDE_ON
11、_CLOSEHIDE_ON_CLOSE:单击关闭按钮后,窗口隐藏起来。:单击关闭按钮后,窗口隐藏起来。DISPOSE_ON_CLOSEDISPOSE_ON_CLOSE:单击关闭按钮后,窗口消失并释放所:单击关闭按钮后,窗口消失并释放所有的资源。有的资源。EXIT_ON_CLOSEEXIT_ON_CLOSE:单击关闭按钮后,退出应用程序,该参:单击关闭按钮后,退出应用程序,该参数仅用于应用程序。数仅用于应用程序。框框 架架(可以独立显示的顶层容器)(可以独立显示的顶层容器)池州学院池州学院数学计算机科学系数学计算机科学系n显示组件的方法显示组件的方法ppublic void public voi
12、d setSize(intsetSize(int width,intwidth,int height) height):设置:设置框架的大小框架的大小, ,参数单位为像素。参数单位为像素。ppublic void pack( ):public void pack( ):自动调整框架的大小为框架中的自动调整框架的大小为框架中的组件所占用的大小。组件所占用的大小。n显示框架的方法显示框架的方法ppublic void show( ):public void show( ):继承自继承自windowswindows的方法,用来显的方法,用来显示框架。示框架。ppublic void public v
13、oid setVisible(booleansetVisible(boolean b) b):继承自:继承自ComponentComponent类的方法,当参数为类的方法,当参数为tureture时,显示框架;否时,显示框架;否则隐藏框架。则隐藏框架。n例例9.29.2(P202P202)框框 架架(可以独立显示的顶层容器)(可以独立显示的顶层容器)池州学院池州学院数学计算机科学系数学计算机科学系u按钮按钮n按钮的构造方法(按钮的构造方法(P203 P203 表表9-19-1)n设置按钮属性的方法(设置按钮属性的方法(P203 P203 表表9-29-2)n例例9.39.3(P204P204)
14、按钮与事件处理按钮与事件处理池州学院池州学院数学计算机科学系数学计算机科学系u按钮的事件处理按钮的事件处理n事件放置在事件放置在java.awt.eventjava.awt.event包中,所有事件类都包中,所有事件类都从从java.awt.AWTEventjava.awt.AWTEvent类派生出来的。类派生出来的。nJavaJava事件处理机制的三个组成部分事件处理机制的三个组成部分n例例9.49.4(P205P205)按钮与事件处理按钮与事件处理ButtonButtonFrameFrameactionPerformed(ActionEventactionPerformed(ActionE
15、vent) )ActionEventActionEvent 事件源事件源事件监听器事件监听器事件池州学院池州学院数学计算机科学系数学计算机科学系u事件处理类事件处理类n常用的事件处理类(常用的事件处理类(P207 P207 表表9-39-3)n组件、事件类和监听器接口的对应关系(组件、事件类和监听器接口的对应关系(p207 p207 表表9-9-4 4)n要实现一种接口,必须实现接口中定义的所有方法要实现一种接口,必须实现接口中定义的所有方法。n要将事件传递给监听器接收和处理,需要进行事件要将事件传递给监听器接收和处理,需要进行事件监听器的注册和注销。监听器的注册和注销。按钮与事件处理按钮与事
16、件处理池州学院池州学院数学计算机科学系数学计算机科学系u单行文本框与密码文本框单行文本框与密码文本框nJTextFieldJTextFieldp构造方法(构造方法(P208 P208 表表9-59-5)nJPasswordFieldJPasswordFieldp是是JTextFieldJTextField的子类,在的子类,在JTextFieldJTextField的基础上增加了的基础上增加了密码处理的方法。默认以密码处理的方法。默认以“* *”的方式显示,可通过的方式显示,可通过setEchoChar(charsetEchoChar(char chch) )设置密码显示字符,设置密码显示字符,
17、getEchoChargetEchoChar( )( )方法获取密码显示字符。其构造方法方法获取密码显示字符。其构造方法与与JTextFieldJTextField类似。类似。nJTextFieldJTextField和和JPassworldFieldJPassworldField的方法(的方法(p208 p208 表表9-69-6)n获取密码的方法:获取密码的方法:char char getPasswordgetPassword( )( )n例例9.59.5(P209P209)文本框与文本域文本框与文本域池州学院池州学院数学计算机科学系数学计算机科学系u多行文本域多行文本域nJTextAre
18、aJTextAreap构造方法(构造方法(P211 P211 表表9-79-7)p常用方法(常用方法(P211 P211 表表9-89-8)p可以将可以将JTextAreaJTextArea对象放入对象放入JScrollPaneJScrollPane中,实现多行文中,实现多行文本的滚动。本的滚动。p文本内容发生变化时触发文本内容发生变化时触发DocumentEventDocumentEvent事件,由事件,由DocumentListenerDocumentListener监听。对文本内容发生变化的处理步监听。对文本内容发生变化的处理步骤:骤:创建创建DocumentListenerDocume
19、ntListener类型的对象类型的对象myListenermyListener。创建创建JTextAreaJTextArea类型的对象类型的对象myAreamyArea。获取获取myAreamyArea的文档对象,并添加监听器的文档对象,并添加监听器myListenermyListener。 myArea.getDocument().addDocumentListener(myListenmyArea.getDocument().addDocumentListener(myListenerer) )p例例9.69.6(P212P212)文本框与文本域文本框与文本域池州学院池州学院数学计算机科
20、学系数学计算机科学系uLayoutManagerLayoutManager:容器布局管理器的接口:容器布局管理器的接口n布局管理器用来管理组件在容器中的布局,容器布局管理器用来管理组件在容器中的布局,容器中的组件位置由布局管理器决定,当容器需要对中的组件位置由布局管理器决定,当容器需要对放置在其中的某个组件进行定位和大小设置时,放置在其中的某个组件进行定位和大小设置时,就会调用对应的布局管理器。就会调用对应的布局管理器。n相关方法相关方法psetLayoutsetLayout( (布局管理器对象布局管理器对象):):为容器设置布局管理器。为容器设置布局管理器。psetLayout(nullse
21、tLayout(null) ):取消布局管理器,同时使用:取消布局管理器,同时使用setLocationsetLocation()()、setSizesetSize()()、setBoundssetBounds()()等方法为组等方法为组件设置大小和位置。件设置大小和位置。布局管理器布局管理器池州学院池州学院数学计算机科学系数学计算机科学系u BorderLayoutBorderLayout 布局管理器布局管理器n此布局管理器将容器分为此布局管理器将容器分为5 5个区域:个区域:EastEast、WestWest、SouthSouth、NorthNorth和和CenterCenter,分别用,
22、分别用5 5个字符串常个字符串常量表示。量表示。n构造方法(表构造方法(表9-109-10)n特点:使用这个管理器的容器,每个区域只能放特点:使用这个管理器的容器,每个区域只能放一个组件,被拉伸时,各个组件相对位置不变,一个组件,被拉伸时,各个组件相对位置不变,中间部分组件的尺寸发生变化,中间部分组件的尺寸发生变化,EastEast和和WestWest位置位置的组件的宽度不变,高度随之改变,的组件的宽度不变,高度随之改变,SouthSouth和和NorthNorth位置的组件的高度不变,宽度随之改变。位置的组件的高度不变,宽度随之改变。n添加组件的方法:添加组件的方法: public void
23、 public void add(Componentadd(Component c,Stringc,String s); s);n例例9.7 9.7 布局管理器布局管理器池州学院池州学院数学计算机科学系数学计算机科学系u FlowLayoutFlowLayout 布局管理器布局管理器n构造方法:构造方法:pFlowLayoutFlowLayout()():组件居中放置,组件之间的水平间距和:组件居中放置,组件之间的水平间距和垂直间距都是垂直间距都是5 5;pFlowLayout(intFlowLayout(int align) align):设置容器中的组件放置方式:设置容器中的组件放置方式,
24、间距和垂直间距和第一种相同。,间距和垂直间距和第一种相同。pFlowLayout(intFlowLayout(int align,intalign,int hgap,inthgap,int vgapvgap) ):设置容:设置容器中的组件放置方式和间距及垂直间距。器中的组件放置方式和间距及垂直间距。n组件从左向右依次摆放,一行排满则另起一行。组件从左向右依次摆放,一行排满则另起一行。改变窗口大小时,组件相对位置会发生改变。组改变窗口大小时,组件相对位置会发生改变。组件对齐方式有三个常量表示。件对齐方式有三个常量表示。n添加组件的方式:添加组件的方式:add(Componentadd(Compo
25、nent c) c)n例例9.89.8布局管理器布局管理器池州学院池州学院数学计算机科学系数学计算机科学系u GridLayoutGridLayout 布局管理器布局管理器n此布局管理器按照网格状布局设置容器中的各个此布局管理器按照网格状布局设置容器中的各个组件的位置。组件的位置。n特点:改变容器大小时,组件相对位置不变,但特点:改变容器大小时,组件相对位置不变,但大小随之改变。大小随之改变。n构造方法(表构造方法(表9-129-12)n其他方法(表其他方法(表9-139-13)n例例p源代码源代码p运行结果运行结果布局管理器布局管理器池州学院池州学院数学计算机科学系数学计算机科学系uBoxL
26、ayoutBoxLayoutn构造方法:构造方法:pBoxLayout(containerBoxLayout(container target,inttarget,int axis) axis)n其他方法(表其他方法(表9-149-14)n布置组件的整型常量布置组件的整型常量pX_AXISX_AXIS:从左到右横向布置组件。:从左到右横向布置组件。pY_AXISY_AXIS:从上到下纵向布置组件。:从上到下纵向布置组件。pLINE_AXISLINE_AXIS:根据容器的:根据容器的ComponentOrientationComponentOrientation属性,属性,按照文字在一行中的排列
27、方式布置组件。按照文字在一行中的排列方式布置组件。pPAGE_AXISPAGE_AXIS根据容器的根据容器的ComponentOrientationComponentOrientation属性,按属性,按照文本行在一页中的排列方式布置组件。照文本行在一页中的排列方式布置组件。n例例9.109.10布局管理器布局管理器池州学院池州学院数学计算机科学系数学计算机科学系uJAppletJAppletnJAppletJApplet是是AppletApplet的子类,所有的的子类,所有的Swing GUISwing GUI组件都组件都包含在包含在JAppletJApplet小程序中。小程序中。n例例7.
28、127.12p源代码源代码p运行结果运行结果n注:注:p与与JAppletJApplet配合使用的配合使用的HTMLHTML文件和文件和AppletApplet的的HTMLHTML文件没有什文件没有什么分别。么分别。p在在JAppletJApplet中加入中加入SwingSwing组件时必须先使用组件时必须先使用JAppletJApplet方法方法getContentPanegetContentPane()()获得一个获得一个ContaninerContaniner对象,再调用这个对象,再调用这个对象的对象的add()add()方法将方法将JComponentJComponent及子类对象加到
29、及子类对象加到JAppletJApplet中中。pJAppletJApplet的默认布局管理器是的默认布局管理器是BorderLayoutBorderLayout. .import import javax.swingjavax.swing. .* *; ;import import java.awtjava.awt. .* *; ;public class public class MyFirstJAppletMyFirstJApplet extends extends JAppletJApplet public void public void paint(Graphicspaint(Gr
30、aphics g) g) g.drawString(Ig.drawString(I am a JApplet.,10,20); am a JApplet.,10,20); applet code=“” width=200 height=200池州学院池州学院数学计算机科学系数学计算机科学系uJButtonJButtonn与与ButtonButton的区别:的区别:p可以在按钮上显示图标;可以在按钮上显示图标;p可以在不同状态使用不同的按钮图标;可以在不同状态使用不同的按钮图标; p可以为按钮加入提示信息等等。可以为按钮加入提示信息等等。n构造方法构造方法pJButton(IconJButton
31、(Icon icon) / icon) /按钮上显示图标按钮上显示图标pJButton(StringJButton(String text) / text) /按钮上显示字符按钮上显示字符pJButton(StringJButton(String text, Icon text, Icon iconicon) /) /按钮上既显示图标又显示字符按钮上既显示图标又显示字符 n创建图标按钮创建图标按钮p例例7.137.13n改变按钮图标:根据按钮所处状态的不同而自动变换不同的改变按钮图标:根据按钮所处状态的不同而自动变换不同的SwingSwing按钮图标。按钮图标。p例例7.147.14n为按钮加
32、入提示:当鼠标在按钮上停留几秒时,屏幕上显示简短为按钮加入提示:当鼠标在按钮上停留几秒时,屏幕上显示简短的按钮作用提示信息。的按钮作用提示信息。p例例7.157.15import import java.awtjava.awt. .* *; ;import import java.awt.eventjava.awt.event. .* *; ;import import javax.swingjavax.swing. .* *; ;public class public class TestIconButtonTestIconButton extends extends JAppletJApp
33、letimplements implements ActionListenerActionListener JButtonJButton jbtnjbtn; ; public void init() public void init() Container c= Container c=getContentPanegetContentPane();(); Icon Icon iconicon=new =new ImageIcon(bIcon.gifImageIcon(bIcon.gif);); jbtnjbtn=new =new JButton(JJButton(J按钮按钮,icon);,ic
34、on); c.add(jbtn,BorderLayout.NORTHc.add(jbtn,BorderLayout.NORTH);); jbtn.addActionListener(thisjbtn.addActionListener(this);); public void public void actionPerformed(ActionEventactionPerformed(ActionEvent e) e) showStatusshowStatus(响应单击响应单击J J按钮按钮);); 图标文件和当前程图标文件和当前程序的源文件在同一序的源文件在同一个文件夹里,否则个文件夹里,否
35、则应给出该图标文件应给出该图标文件的全路径名。的全路径名。import import java.awtjava.awt. .* *; ;import import java.awt.eventjava.awt.event. .* *; ;import import javax.swingjavax.swing. .* *; ;public class public class TestChangeButtonTestChangeButton extends extends JAppletJApplet implements implements ActionListenerActionList
36、ener JButtonJButton jbtnjbtn; ; public void init() public void init() Container c= Container c=getContentPanegetContentPane();(); Icon Icon normalIconnormalIcon=new =new ImageIcon(normal.gifImageIcon(normal.gif);); Icon Icon pressedIconpressedIcon=new =new ImageIcon(pressed.gifImageIcon(pressed.gif)
37、;); Icon Icon rolloverIconrolloverIcon=new =new ImageIcon(rollover.gifImageIcon(rollover.gif);); jbtnjbtn=new =new JButton(normalIconJButton(normalIcon);); jbtn.setPressedIcon(pressedIconjbtn.setPressedIcon(pressedIcon); ); jbtn.setRolloverIcon(rolloverIconjbtn.setRolloverIcon(rolloverIcon);); jbtn.
38、setRolloverEnabled(truejbtn.setRolloverEnabled(true);); c.add(jbtn,BorderLayout.NORTHc.add(jbtn,BorderLayout.NORTH);); jbtn.addActionListener(thisjbtn.addActionListener(this);); public void public void actionPerformed(ActionEventactionPerformed(ActionEvent e) e) showStatusshowStatus(“(“响应单击响应单击J J按钮
39、按钮”);/”);/* *在浏览器的状态条在浏览器的状态条 中显示指定信息。中显示指定信息。* */ / 设置鼠标按下时设置鼠标按下时按钮上显示的图按钮上显示的图片。片。设置鼠标滑过时按设置鼠标滑过时按钮上显示的图片。钮上显示的图片。将按钮上的图标变将按钮上的图标变换功能打开。换功能打开。import import java.awtjava.awt. .* *; ;import import java.awt.eventjava.awt.event. .* *; ;import import javax.swingjavax.swing. .* *; ;public class public
40、class TestTipButtonTestTipButton extends extends JAppletJApplet implements implements ActionListenerActionListener JButtonJButton jbtnjbtn; ; public void init() public void init() Container c= Container c=getContentPanegetContentPane();(); ImageIconImageIcon icon=new icon=new ImageIcon(f:/java/bIcon
41、.jpgImageIcon(f:/java/bIcon.jpg);); jbtnjbtn=new =new JButton(iconJButton(icon);); jbtn.setToolTipText(Ijbtn.setToolTipText(I am Swing button.); / am Swing button.); /设置提示文本设置提示文本 c.add(jbtn,BorderLayout.NORTHc.add(jbtn,BorderLayout.NORTH);); jbtn.addActionListener(thisjbtn.addActionListener(this);)
42、; public void public void actionPerformed(ActionEventactionPerformed(ActionEvent e) e) showStatusshowStatus(响应单击响应单击J J按钮按钮);); f:javabIcon.jpg池州学院池州学院数学计算机科学系数学计算机科学系uJSliderJSlidern与与AWTAWT中的中的ScrollbarScrollbar(滚动条)相似,区别是它滚(滚动条)相似,区别是它滚动条增加了刻度和标注。动条增加了刻度和标注。nJSliderJSlider的构造函数:的构造函数:pJSliderJSli
43、der(intint orient orient,intint min, min, intint max,intmax,int initvalueinitvalue)第一个参数表示滚动条的方向,其值为:第一个参数表示滚动条的方向,其值为:Jslider.HORIZONTALJslider.HORIZONTAL(横向)或(横向)或Jslider.VERTICALJslider.VERTICAL( (纵向);纵向);第二个参数表示滚动条所能表达的最小值;第二个参数表示滚动条所能表达的最小值;第三个参数表示滚动条所能表达的最大值;第三个参数表示滚动条所能表达的最大值;第四个参数表示滑块所在的初始位置
44、。第四个参数表示滑块所在的初始位置。n例例7.167.16p源代码源代码p运行结果运行结果 import import java.awtjava.awt. .* *; ;import import java.awt.eventjava.awt.event. .* *; ;import import javax.swingjavax.swing. .* *; ;public class public class TestJSliderTestJSlider extends extends JAppletJApplet implements implements ChangeListenerCha
45、ngeListener JSliderJSlider jslh,jslvjslh,jslv; ; JLabelJLabel jljl; ; double double hValuehValue=0.0,vValue=0.0;=0.0,vValue=0.0; public void init() public void init() Container c= Container c=getContentPanegetContentPane();(); jslhjslh=new JSlider(JSlider.HORIZONTAL,0,255,0);=new JSlider(JSlider.HOR
46、IZONTAL,0,255,0); jslvjslv=new JSlider(JSlider.VERTICAL,200,1000,800);=new JSlider(JSlider.VERTICAL,200,1000,800); jslh.setMajorTickSpacing(30); jslh.setMajorTickSpacing(30); jslh.setPaintLabels(truejslh.setPaintLabels(true);); jslv.setMajorTickSpacing(200); jslv.setMajorTickSpacing(200); jslv.setPa
47、intLabels(truejslv.setPaintLabels(true);); c.add(jslh,BorderLayout.SOUTHc.add(jslh,BorderLayout.SOUTH);); c.add(jslv,BorderLayout.WESTc.add(jslv,BorderLayout.WEST);); jljl=new =new JLabelJLabel(横向滚动条指向:横向滚动条指向:0.00.0;纵向滚动条指向:;纵向滚动条指向:800.0);800.0); c.add(jl,BorderLayout.CENTERc.add(jl,BorderLayout.C
48、ENTER);); jslh.addChangeListener(thisjslh.addChangeListener(this);); jslv.addChangeListener(thisjslv.addChangeListener(this);); 设置刻度间隔设置刻度间隔设置标尺显示设置标尺显示public void public void stateChanged(ChangeEventstateChanged(ChangeEvent e) e) if(e.getSourceif(e.getSource()=()=jslhjslh) ) hValuehValue=(=(JSlider
49、)e.getSource().getValueJSlider)e.getSource().getValue();(); else else if(e.getSourceif(e.getSource()=()=jslvjslv) ) vValuevValue=(=(JSlider)e.getSource().getValueJSlider)e.getSource().getValue();(); jl.setTextjl.setText(横向滚动条指向:横向滚动条指向:+hValuehValue+;+;纵向滚动条指向:纵向滚动条指向:+vValuevValue);); 池州学院池州学院数学计算机
50、科学系数学计算机科学系uJPasswordFieldJPasswordFieldn此组件是用来输入口令,输入的字符会被其他字此组件是用来输入口令,输入的字符会被其他字符替代而遮住。符替代而遮住。n例例7.177.17p源代码源代码p运行结果运行结果n注:可以调用注:可以调用setEchoChar(charsetEchoChar(char chch) )方法将掩盖方法将掩盖密码的字符改成参数指定的字符。密码的字符改成参数指定的字符。import import java.awtjava.awt. .* *; ;import import javax.swing.eventjavax.swing.e
51、vent. .* *; ;import import javax.swingjavax.swing. .* *; ;import import java.awt.eventjava.awt.event. .* *; ;public class public class TestJPasswordFieldTestJPasswordField extends extends JAppletJApplet implements implements ActionListenerActionListener JLabelJLabel jl1,jl2; jl1,jl2; JPasswordFieldJ
52、PasswordField jp1,jp2; jp1,jp2; JButtonJButton commit,cancelcommit,cancel; ; public void init() public void init() Container c= Container c=getContentPanegetContentPane();(); jl1=new jl1=new JLabelJLabel(请输入您的密码:请输入您的密码:);); jl2=new jl2=new JLabelJLabel(请再次输入密码:请再次输入密码:);); jp1=new JPasswordField(10
53、); jp1=new JPasswordField(10); jp2=new JPasswordField(10); jp2=new JPasswordField(10); commit=new commit=new JButtonJButton(确认确认);); cancel=new cancel=new JButtonJButton(清除清除);); c.setLayout(newc.setLayout(new GridLayout(3,2); GridLayout(3,2); c.add(jl1); c.add(jl1); c.add(jp1); c.add(jp1); c.add(jl
54、2); c.add(jl2); c.add(jp2); c.add(jp2); c.add(commitc.add(commit);); c.add(cancelc.add(cancel);); commit.addActionListener(thiscommit.addActionListener(this);); cancel.addActionListener(thiscancel.addActionListener(this);); public void public void actionPerformed(ActionEventactionPerformed(ActionEve
55、nt e) e) if(e.getSourceif(e.getSource()=commit)()=commit) if(String.valueOf(jp1.getPassword().equals( if(String.valueOf(jp1.getPassword().equals( String.valueOf(jp2.getPassword() String.valueOf(jp2.getPassword() showStatusshowStatus(密码输入成功!密码输入成功!);); else else showStatusshowStatus(两次输入密码不同,请重新输入!两次
56、输入密码不同,请重新输入!);); if(e.getSourceif(e.getSource()=cancel)()=cancel) jp1.setText(); jp1.setText(); jp2.setText(); jp2.setText(); 获取密码域中的字获取密码域中的字符串,返回值为字符串,返回值为字符数组符数组将参数转换成字符将参数转换成字符串。串。池州学院池州学院数学计算机科学系数学计算机科学系uJTabbedPaneJTabbedPanen例例7.187.18p源代码源代码p运行结果运行结果import import java.awtjava.awt. .* *; ;im
57、port import java.awt.eventjava.awt.event. .* *; ;import import javax.swingjavax.swing. .* *; ;import import javax.swing.eventjavax.swing.event. .* *; ;class class WindAdptWindAdpt extends extends WindowAdapterWindowAdapter public void public void windowClosing(WindowEventwindowClosing(WindowEvent e)
58、 e) ( (e.getWindow().disposee.getWindow().dispose();/();/* *获得发生事件的窗口获得发生事件的窗口 并释放其占用的所有资源。并释放其占用的所有资源。* */ / System.exit(0); System.exit(0); class class MyTabbedPaneMyTabbedPane extends Frame implements extends Frame implements ChangeListener,ActionListenerChangeListener,ActionListener JTabbedPaneJ
59、TabbedPane jtpjtp; ; JButtonJButton jbtnjbtn; ; intint currentIndexcurrentIndex=0;=0; MyTabbedPaneMyTabbedPane()() super( super(使用卡片容器使用卡片容器);); jtpjtp=new =new JTabbedPaneJTabbedPane();(); jbtnjbtn=new JButton5;=new JButton5; for(intfor(int i=0;i5;i+) i=0;i5;i+) jbtnijbtni=new =new JButtonJButton(第
60、第+i+i+页卡片页卡片);); jbtni.addActionListener(thisjbtni.addActionListener(this);); jtp.addTabjtp.addTab(页签页签+i,jbtnii,jbtni);); jtp.addChangeListener(thisjtp.addChangeListener(this);); add(jtp,BorderLayout.CENTERadd(jtp,BorderLayout.CENTER);); addWindowListener(newaddWindowListener(new WindAdptWindAdpt()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026重庆市黔江区博睿幼儿园招聘笔试参考题库及答案详解
- 《把栏杆拍遍》读书笔记
- 2026年邵阳市中心医院医护人员招聘考试备考试题及答案详解
- 2026福建三明市清流县财通国有投资集团有限公司面向台湾同胞招聘国有企业工作人员笔试备考题库及答案详解
- 2025年湖北省妇女儿童医院医护人员招聘考试试题及答案详解
- 2026广东职业技术学院第二批非事业编制教师招聘8人笔试参考题库及答案详解
- 2026华东师范大学附属紫竹幼儿园学年实习生招募笔试参考题库及答案详解
- 2026广西崇左市龙州县人力资源和社会保障局城镇公益性岗位工作人员招聘3人笔试备考题库及答案详解
- 2026江苏盐城工业职业技术学院招聘高层次人才27人备考题库(第一批)完整参考答案详解
- 2026河北衡水景县人力资源和社会保障局招就业见习人员172名备考题库及完整答案详解1套
- 2026年高考英语试题评析
- 2026年湖北十堰市中考英语试卷及答案
- 重庆市2026届高三学业质量调研抽测(高考二模)英语试卷
- 2026年辽宁沈阳市-中考模拟试卷英语(含答案)
- 2026年历史街区老旧建筑消防改造技术案例
- 第7课伟大的历史转折说课课件
- 施工安全确认制度
- 基于PLC的十字路口交通信号灯控制系统设计毕业论文
- 《2025中国临床肿瘤学会黑色素瘤诊疗指南》
- 钢铁行业新员工安全培训
- 门诊病人猝死应急培训
评论
0/150
提交评论