ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:53.50KB ,
资源ID:5284532      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5284532.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JavaSwing.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JavaSwing.docx

1、JavaSwingJava Swing 组件技术1、简介(1)JFC Swing: 它是AWT的扩展。它比AWT提供了更多的组件和外观。是Sun公司的新一代的图形界面的标准。Swing组件的实现不包括任何于平台相关的代码,它是纯Java代码,因此与平台无关。(2)AWT的优、缺点:AWT提供了构造Applet和Application图形用户界面的基本类库。通过采用“本地对等端”(native peer)模型,即AWT中的每一个可视化GUI组件都有一个相应的本地对等端来负责它的显示与外观,从而解决了跨各种软硬件平台显示GUI的问题,为Java最初的成功奠定了基础。 AWT的“本地对等端”模型,满

2、足了当时开发人员希望Java在不同平台上运行时,具有本地显示风格的要求,但同时也带来了一些问题: “本地对等端”模型给GUI的绘画和事件处理带来了很多限制,使得某些方面的GUI编程很难实现:如采用透明背景色、改变GUI组件外形为其他形状等。 AWT提供的是本地显示风格,但是随着Internet的普及,更多的开发人员希望网络应用能够具有一致的显示风格。 (3)Java Swing的产生:为解决AWT的“本地对等端”模型带来的问题,Sun公司与Netscape、IBM合作共同开发了新一代Java图形类库JFC(Java Foundation Class)。JFC实际上是AWT的超集,它提供了更丰富

3、的GUI组件和更强的图形/图像处理能力,而且JFC完全向下兼容AWT的应用。(4)Java Swing的优点:Swing组件全部是“轻型”组件(即不需要“本地对等端”的组件),具备“可插接的外观和感觉”特性(可以动态改变)。2、主要的包与组件类、事件类与接口Swing提供了一套丰富的“轻型”GUI组件,定义在javax.swing包中。Swing组件涵盖了AWT中业已提供的GUI组件,这些组件的类名即是AWT的组件类名加上前缀“J”。其中基本GUI组件新增加了JTable、JTree、JSlide、JProgressBar、JToolTip以及JFileChooser和JColorChoose

4、r,并将Choice组件更名为大家熟悉的ComboBox;而容器组件则新增加了JSplitPane、JTabbedPane、JToolBar、JInternalFrame和JLayeredPane。 其各个组件都是JComponent的子类,主要有AbstractButton, BasicInternalFrameTitlePane, Box, Box.Filler, JColorChooser, JComboBox, JFileChooser, JInternalFrame, JInternalFrame.JDesktopIcon, JLabel, JLayeredPane, JList,

5、JMenuBar, JOptionPane, JPanel, JPopupMenu, JProgressBar, JRootPane, JScrollBar, JScrollPane, JSeparator, JSlider, JSpinner, JSplitPane, JTabbedPane, JTable, JTableHeader, JTextComponent, JToolBar, JToolTip, JTree, JViewport。Swing组件,无论是基本组件还是容器组件,都沿用了AWT(JDK1.1)的事件处理模型。除了java.awt.event包中定义的事件类和事件监听器接

6、口,Swing还在javax.swing.event包中为新增加的组件定义了相应的事件类和事件监听器接口。此外,为了满足商业化桌面应用的需求,同时简化应用的开发和部署,Swing还定义了一套新的高层次的GUI组件。3、注意的问题 由于Swing中的各个组件类与AWT的组件类有相同的基类,所以可以在同一界面中同时使用Swing与AWT。但有时可能不能正常显示,最好不要合用。4、Swing的“外观和感觉”(Look and Feel) Swing 提供了三种“外观和感觉”,即Windows系统、Motif X Window系统(UNIX下)和Metal(Swing的新的交平台,为Java Swin

7、g的缺省方式)。通过Look and Feel机制,我们可以使程序的设计者任意转换程序的人机界面来对应不同的操作系统平台。设置方法(请见LookAndFeelTest.java、FrameLook.java动态地改变外观):(1)使用Swing的新的交平台:当采用该“外观和感觉”时,将使Java程序在不同的系统平台上表现出相同的外观,因为JVM调用相同的类库。try UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName(); catch (Exception exc) System.err.println

8、(Error loading L&F: + exc); (2)使用目标系统平台的外观,如在Windows系统下为Windows的外观即自适应功能。try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); /在此方式下不支持中文 catch (Exception exc) System.err.println(Error loading L&F: + exc); (3)强制为某一种系统平台Windows系统try UIManager.setLookAndFeel(com.sun.java.swing.plaf.

9、windows.WindowsLookAndFeel); catch (Exception exc) System.err.println(Error loading L&F: + exc); Unix X Window系统平台try UIManager.setLookAndFeel(com.sun.java.swing.plaf.motif.MotifLookAndFeel); catch (Exception exc) System.err.println(Error loading L&F: + exc); Swing Metal系统try UIManager.setLookAndFee

10、l(javax.swing.plaf.metal.MetalLookAndFeel); catch (Exception exc) System.err.println(Error loading L&F: + exc); (4)动态地改变程序的Look and Feel UIManager.setLookAndFeel(javax.swing.plaf.metal.MetalLookAndFeel); SwingUtilities.updateComponentTreeUI(this); /对由this所指示的组件重新设置外观注意:由于JFrame、JApplet等为重量级组件,因此它的外观

11、只与操作系统平台有关系,在相同的操作系统平台下表现出相同的外观。5、在Swing容器中添加组件 对JFrame与JApplet等顶级的容器,在添加组件时与AWT不同点是不能直接调用容器的add()方法,而是(1)获得当前容器的内容面板对象,利用getContentPane()(其定义为public Container getContentPane()),再调用容器的add()方法来加人各个其它组件;(2)先利用JPanel类生成一个内容面板对象,并将各个组件加入该内容面板对象中,然后再调用setContentPane()方法(其定义为public void setContentPane(Con

12、tainer contentPane))将内容面板对象加入到当前容器中。6、容器组件的编程应用(1)JFrame:它为Frame的升级,代表应用程序的主窗口。编程的基本方法为:创建JFrame类的子类;在自己的子类的构造函数中调用上层基类的构造函数;设置窗口的大小;设置在用户关闭窗口时则应该完成什么行为;最后显示出窗口。import javax.swing.*;public class JFrameTest extends JFrame public JFrameTest(String title) super(title); setSize(400,400); setDefaultClose

13、Operation(JFrame.EXIT_ON_CLOSE); setVisible(true);public static void main(String arg ) JFrameTest jframe=new JFrameTest(“这是我的窗口标题条文字”);注意:setDefaultCloseOperation()是决定在用户关闭窗口时,完成什么行为。在JFrame类中定义出了4个常量:static int DISPOSE_ON_CLOSE(释放窗口)、static int DO_NOTHING_ON_CLOSE(不做什么事情)、static int EXIT_ON_CLOSE(退

14、出)、static int HIDE_ON_CLOSE(隐藏窗口)。(2)菜单条式菜单:通过JMenuBar类(利用setJMenuBar()方法加入窗口中)、JMenu(级联)、JMenuItem(菜单项目)、JCheckBoxMenuItem(选择性的菜单项目)、JRadioButtonMenuItem(选择性的菜单项目但为圆点)。 mnuFileNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK); /产生快捷键 mnuFile.addSeparator(); /添加分割条 mnuFil

15、eNew.setIcon(new ImageIcon(.imagesnew.gif); /给菜单加上图标 mnuFile.setMnemonic(F); /给菜单加上助记符 要使得多个JRadioButtonMenuItem项目产生单选的效果,可以将它们放入一个ButtonGroup组件中;否则为多选效果。(3)工具条JToolBar在Swing 中的窗口工具条是由JToolBar来实现,它也是一种容器并按照行或列对组件(它们一般为按钮)进行分组。缺省时为水平方向但可以使用SwingConstants. HORIZONTAL或者SwingConstants. VERTICAL来设置其方向。(1

16、)构造函数:JToolBar() 创建出水平方向的工具条(缺省为HORIZONTAL)。JToolBar(int orientation) 创建出指定方向的工具条。JToolBar(String name) 创建出指定名称的工具条。JToolBar(String name, int orientation) 创建出指定方向和名称的工具条。(2)编程方法:创建出JToolBar对象,然后采用add(Object)方法将组件(可以为按钮或其它组件)加入到工具条中。(3)可移动的工具条:可移动的工具条必须使用BorderLayout布局管理器来安排其ContentPane内容面板,并且工具条只能放置

17、在上、下、左、右四个方向之一。此时只有ContentPane容器的中心区域能够放置其它组件,否则将不能移动工具条到该方向上;调用setFloatable(true)设置为可拖动效果。(4)工具条上的工具按钮的事件编程:类似于一般的按钮事件编程,可以分别为各个不同的按钮单独进行事件编程。(5)编程实例:(4)标准对话框:Swing中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能,同样在Java中也有,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。这些对话框都是模式对话框。C

18、onfirmDialog-确认对话框,提出问题,然后由用户自己来确认(按“Yes”或“No”按钮)InputDialog-提示输入文本MessageDialog-显示信息OptionDialog组合其它三个对话框类型。这四个对话框可以采用showXXXDialog()来显示,如showConfirmDialog()显示确认对话框、showInputDialog()显示输入文本对话框、showMessageDialog()显示信息对话框、showOptionDialog()显示选择性的对话框。它们所使用的参数说明如下: ParentComponent:指示对话框的父窗口对象,一般为当前窗口。也可

19、以为null即采用缺省的Frame作为父窗口,此时对话框将设置在屏幕的正中。 message:指示要在对话框内显示的描述性的文字 String title:标题条文字串。 Component:在对话框内要显示的组件(如按钮) Icon:在对话框内要显示的图标 messageType:一般可以为如下的值ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE、PLAIN_MESSAGE、 optionType:它决定在对话框的底部所要显示的按钮选项。一般可以为DEFAULT_OPTION、YES_NO_OPTION、YE

20、S_NO_CANCEL_OPTION、OK_CANCEL_OPTION。使用实例:显示MessageDialogJOptionPane.showMessageDialog(null, 在对话框内显示的描述性的文字, 标题条文字串, JOptionPane.ERROR_MESSAGE);显示ConfirmDialogJOptionPane.showConfirmDialog(null, choose one, choose one, JOptionPane.YES_NO_OPTION);显示OptionDialog:该种对话框可以由用户自己来设置各个按钮的个数并返回用户点击各个按钮的序号(从0开

21、始计数)Object options = 确定,取消,帮助;int response=JOptionPane.showOptionDialog(this, 这是个选项对话框,用户可以选择自己的按钮的个数, 选项对话框标题,JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options0); if(response=0) this.setTitle(您按下了第OK按钮 ); else if(response=1) this.setTitle(您按下了第Cancel按钮 ); else if(response

22、=2) this.setTitle(您按下了第Help按钮 ); 显示InputDialog 以便让用户进行输入String inputValue = JOptionPane.showInputDialog(Please input a value);显示InputDialog 以便让用户进行选择地输入Object possibleValues = First, Second, Third ; /用户的选择项目Object selectedValue = JOptionPane.showInputDialog(null, Choose one, Input,JOptionPane.INFORM

23、ATION_MESSAGE, null, possibleValues, possibleValues0);setTitle(您按下了+(String)selectedValue+项目);(5)用户自定义的JDialog对话框:利用getContentPane().add(child);添加组件。如果要求设计自己的对话框,可以从JDialog类来派生。(6)另外Swing中还提供 实现选择文件的对话框JFileChooser类。它与FileDialog类有差别(FileDialog类是AWT中的,而JFileChooser类是Swing中的)。JFileChooser类的使用方法如下:JFil

24、eChooser chooser = new JFileChooser(); chooser.setDialogTitle(将您的文件改名保存); chooser.setCurrentDirectory(new File(.); chooser.setApproveButtonToolTipText(点击该按钮将保存您的文件); int returnVal1 = chooser.showSaveDialog(this); / 采用showOpenDialog(this)将显示出文件打开方式 if(returnVal1 = JFileChooser.APPROVE_OPTION) /识别是否按下

25、OK /获得用户所选择的文件路径与文件名 textBox.append(chooser.getSelectedFile().getAbsolutePath(); JColorChooser 颜色选择对话框:JColorChooser chooserColor = new JColorChooser(); Color userSelectColor= chooserColor.showDialog(this,Color Select Dialog,Color.red);if(userSelectColor !=null)this.setBackground(userSelectColor);要点

26、:将JColorChooser置于某个容器中,此时创建出JColorChooser类对象并使用ColorSelectionModel接口来管理用户所选择的颜色(利用JColorChooser类中得getSelectionModel()得到ColorSelectionModel接口类的对象,并添加ActionListener事件)。请见JavaWord中的“格式”菜单JColorChooser colorChooser = new JColorChooser(); this.add(Center,colorChooser); ColorSelectionModel selectModel = c

27、olorChooser.getSelectionModel(); selectModel.addChangeListener(this); AWT中的文件打印与页面设置对话框(6)JScrollPane 面板它主要为其它的控件提供Scroll功能。在Swing 中与AWT中实现Scroll功能不同,在AWT中是由组件自己来实现,而在Swing 中则是统一由JScrollPane来完成。即对于需要Scroll要求的组件,必须将它添加到JScrollPane容器中,再将这个JScroolPane容器但代替可Scroll组件而添加到容器中。其构造函数为JScrollPane(Component vi

28、ew, int vsbPolicy, int hsbPolicy) 其中的vsbPolicy和hsbPolicy代表ScrollBar的使用方式,主要有如下六种常量:JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED JScrollPane.VERTICAL_SCROLLBAR_NEVER JScrollPane.VERTICAL_SCROLLBAR_ALWAYS JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED JScrollPane.HORIZONTAL_SCROLLBAR_NEVER JScrollPane.HORIZON

29、TAL_SCROLLBAR_ALWAYS创建的代码如下:JTextArea textBox=new JTextArea();JScrollPane scroll=new JScrollPane(textBox,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);setContentPane(scroll);(7)选项窗格JTabbedPane特性: 它表现为一组文件夹页,每个文件夹都有标题(以Windows系统平台下的TabControl控件为例说明)。类:采用JTabbedP

30、ane类来表示,其内的每个页面为一个Jpanel类或者其子类的对象。构造函数:public JTabbedPane(int tabPlacement, int tabLayoutPolicy)其中Tabplacement可以是JTabbedPane.TOP(表头在上面)、JTabbedPane.BOTTOM(表头在下面)、JTabbedPane.LEFT(表头在左面)、JTabbedPane.RIGHT(表头在右面)。TablayoutPolicy可以是JTabbedPane.WRAP_TAB_LAYOUT(表头不产生SCROLL效果)、 JTabbedPane.SCROLL_TAB_LAYO

31、UT(表头产生SCROLL效果)。编程方法: 创建出JTabbedPane类的对象; 调用addTab()方法加入一个页面组件; 最后将JTabbedPane类的对象加入到顶级容器的ContentPane中。其内的组件事件编程:在各个页面内的组件的事件是独立的,类似于正常的组件事件编程规则。编程实例:请见JTabbedPaneTest.java(8)表格控件JTable功能:它提供以行和列的方式来显示数据,并且可以拖动列构造函数:JTable(Object rowData, Object columnNames)编程方法:创建出JTable对象(可以采用表格中的表头数组和数据数组创建出表格、利用实现TableModel接口的类对象) 再创建出一个JScrollPane对象并指示

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1