swing组件详细介绍_第1页
swing组件详细介绍_第2页
swing组件详细介绍_第3页
swing组件详细介绍_第4页
swing组件详细介绍_第5页
已阅读5页,还剩84页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学习 swing 组件,主要有三个内容一是组件的显示,二是对组件支持的事件进行侦听,三是是自定义组件1.JFrameJFrame 是主窗口,它和 JDialog,JApplet 的地位并列.但是,一个 JFrame 可以添加 JDialog和 JApplet 进去它的内容面板,而反过来就下面来看 JFrame 的例子=package blog.swing;import javax.swing.*;import java.awt.event.*;class JFrameDemoJFrame mainFrame;public JFrameDemo() mainFrame = new JFrame

2、( JFrameDemo Title ); /创建一个 JFramemainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );/设置关闭动作mainFrame.setSize( 300,300 );/设置窗口大小mainFrame.setLocationRelativeTo(null);/使窗口显示在屏幕mainFrame.addWindowListener( new WindowListener()public voidwindowOpened( WindowEvent e)System.out.prln(windowopened

3、); public voidwindowClosing( WindowEvent e)System.out.prln(windowclosing ); public voidwindowClosed( WindowEvent e)System.out.prln(windowclosed ); public voidwindowIconified( WindowEvent e)System.out.prln(windowiconified ); public void windowDeiconified( WindowEvent e ) System.out.prln(windowdeiconi

4、fied ); public void windowActivated( WindowEvent e ) System.out.prln(windowactivated ); public void windowDeactivated( WindowEvent e ) System.out.prln(windowdeactivated ); );mainFrame.addWindowFocusListener( new WindowFocusListener()public void windowGainedFocus( WindowEvent e ) System.out.prln( gai

5、nedfocus ); public void windowLostFocus( WindowEvent e ) System.out.prln( lost focus ); );mainFrame.addWindowSeListener( new WindowSeListener()public void windowSeChanged( WindowEvent e ) System.out.prln( sechanged ); );mainFrame.setVisible( true );public sic void main(String args)new JFrameDemo();=

6、这里出现了三个不同的窗口事件侦,并实现了它们所有的方法WindowListener 和 WindowFocusListener 都可以对窗口失去,获得焦点进行侦听,不同的是, 非帧窗口和框窗口不能接收 WindowListener 的 windowActivated 和windodwDeactivated 事件虽然可以用WindowListener 对窗口的一些状态进行侦听,但是WindowSeListener 提供了的支持.例如,WindowSeListener 可以处理还原窗口的事件,可以判断一个窗口是不是在垂直和水平两个方向都可以最大化(命令提示符窗口只可以在垂直方向上最大化),而这些都

7、是 WindowListener 都为力2.JLabelJLabel 是一.在它的文本里嵌入 html,可以简单实现一个超组件package blog.swing;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;class JLabelDemoJFrame mainFrame;JLabel simpleLabel;public JLabelDemo() mainFrame = new JFrame ( JLabelDemo );simpleLabel = new JLabel (搜索

8、);/嵌入了htmlsimpleLabel.addMouseListener( new MouseAdapter()/添加鼠标事件侦,当单击时,打开网页public void mouseClicked( MouseEvent e )tryRuntime.getRuntime().exec(cmd /c start urlht/url);catch( IOException ee )ee.prStackTrace(););simpleLabel.setCursor( new Cursor(Cursor.HAND_CURSOR) );/设置手形鼠标mainFrame.getContentPane(

9、).add( simpleLabel );/将添加到窗口mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pack();/使窗口自动根据添加了的组件调整大小mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JLabelDemo();3.JButtonJButton 是一个按钮.它和 JLabel 一样的简单package blog.swing;impo

10、rt java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;class JButtonDemoJFrame mainFrame;JButton simputton;public JButtonDemo() mainFrame = new JFrame ( JButtonDemo );simputton = new JButton(搜索);mainFrame.getContentPane().add( simputton );simputton.addActionListener( new ActionL

11、istener()/添加动作侦,当按钮被按下时执行这里的代码以打开网页public void actionPerformed( ActionEvent e)tryRuntime.getRuntime().exec(cmd /c start urlht/url);catch( IOException ee )ee.prStackTrace(););simputton.setCursor( new Cursor(Cursor.HAND_CURSOR) );mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pac

12、k();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JButtonDemo();4.JTextField一个文本框package blog.swing;import javax.swing.*;import java.awt.event.*;class JTextFieldDemoJFrame mainFrame;JTextField simpleTextField;public JTextFieldDemo() mainFrame

13、 = new JFrame ( JTextFieldDemo );simpleTextField = new JTextField(20);/构造宽度为20个字符的文本框mainFrame.getContentPane().add( simpleTextField );simpleTextField.addActionListener( new ActionListener()/在输入字符后按回车执行行代码,在标准输出窗口输出它的内容public void actionPerformed( ActionEvent e)System.out.prln( simpleTextField.getTe

14、xt() ););mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JTextFieldDemo();5.JTextArea文本区域,与文本框不同的是它是多行的package blog.swing;import java.awt.*;import javax.swing.*;import

15、java.awt.event.*;class JTextAreaDemoJFrame mainFrame;JTextArea simpleTextArea;JButton appendButton;public JTextAreaDemo() mainFrame = new JFrame ( JTextAreaDemo );simpleTextArea = new JTextArea(10,20);/创建一个显示10行20列的文本域simpleTextArea.setLineWrap(true);/设置它自动换行simpleTextArea.setWrapStyleWord(true);/设置

16、它自动换行时根据单词换行,而不是根据字符appendButton = new JButton (append text to the text area);mainFrame.getContentPane().add( simpleTextArea,BorderLayout.PAGE_START );mainFrame.getContentPane().add( appendButton,BorderLayout.PAGE_END );appendButton.addActionListener( new ActionListener()public void actionPerformed(

17、 ActionEvent e)simpleTextArea.append(button appended text here);System.out.prln( simpleTextArea.getText() ););mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JTextAreaD

18、emo();6.JPasswordFieldpackage blog.swing;import java.awt.*;import javax.swing.*;import java.awt.event.*;class JPasswordFieldDemoJFrame mainFrame;JPasswordField simplePasswordField;public JPasswordFieldDemo() mainFrame = new JFrame ( JPasswordFieldDemo );simplePasswordField = new JPasswordField(10);s

19、implePasswordField.setEchoChar(*);/设定要显示的字符mainFrame.getContentPane().add( simplePasswordField );simplePasswordField.addActionListener( new ActionListener()/回车时执行的动作public void actionPerformed( ActionEvent e)char input = simplePasswordField.getPassword();for( char c : input )System.out.pr( c ););mai

20、nFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JPasswordFieldDemo();7.JPanel一个面板.一般用作控制组件的布局.package blog.swing;import javax.swing.*;class JPanelDemoJFrame mainFrame;JPan

21、el simplePanel;JButton simputton;JLabel simpleLabel;public JPanelDemo() mainFrame = new JFrame ( JPanelDemo );simplePanel = new JPanel();simputton = new JButton (button);simpleLabel = new JLabel (label);simplePanel.add( simpleLabel );simplePanel.add( simputton );mainFrame.getContentPane().add( simpl

22、ePanel );mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JPanelDemo();8.JCheckBox复选框package blog.swing;import javax.swing.*;import java.awt.event.*;class JCheckBoxDemo

23、implements ItemListenerJFrame mainFrame;JPanel mainPanel;JCheckBox simpleCheckBox1;JCheckBox simpleCheckBox2;public JCheckBoxDemo() mainFrame = new JFrame ( JCheckBoxDemo );mainPanel = new JPanel ();simpleCheckBox1 = new JCheckBox(checkbox1);simpleCheckBox1.setMnemonic(1);simpleCheckBox1.addItemList

24、ener(this);simpleCheckBox2 = new JCheckBox(checkbox2);simpleCheckBox2.setMnemonic(2);simpleCheckBox2.addItemListener(this);mainPanel.add(simpleCheckBox1);mainPanel.add(simpleCheckBox2);mainFrame.getContentPane().add( mainPanel );mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pa

25、ck();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public void itemSeChanged( ItemEvent e )JCheckBox cb = (JCheckBox)e.getSource();if( cb= simpleCheckBox1 )System.out.prln( simpleCheckBox1 );elseSystem.out.prln( simpleCheckBox2 );public sic void main(String args)new JCheckBoxDem

26、o();9.JRadioButton单选按钮.单选按钮要用到 ButtonGroup.添加到同一个 ButtonGroup 的单选按钮表示在它们之间只可选其一.不同 ButtonGroup 里的单选按钮相互之间的选择不受影响.package blog.swing;import javax.swing.*;import java.awt.event.*;class JRadioButtonDemo implements ItemListenerJFrame mainFrame;JPanel mainPanel;ButtonGroup buttonGroup;JRadioButton simple

27、RadioButton1;JRadioButton simpleRadioButton2;public JRadioButtonDemo() mainFrame = new JFrame ( JRadioButtonDemo );mainPanel = new JPanel ();simpleRadioButton1 = new JRadioButton(RadioButton1);simpleRadioButton1.setMnemonic(1);simpleRadioButton1.addItemListener(this);simpleRadioButton2 = new JRadioB

28、utton(RadioButton2);simpleRadioButton2.setMnemonic(2);simpleRadioButton2.addItemListener(this);buttonGroup = new ButtonGroup();buttonGroup.add(simpleRadioButton1);buttonGroup.add(simpleRadioButton2);mainPanel.add(simpleRadioButton1);mainPanel.add(simpleRadioButton2);mainFrame.getContentPane().add( m

29、ainPanel );mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public void itemSeChanged( ItemEvent e )JRadioButton cb = (JRadioButton)e.getSource();if( cb= simpleRadioButton1 )System.out.prln( simpleRadioButt

30、on1 );elseSystem.out.prln( simpleRadioButton2 );public sic void main(String args)new JRadioButtonDemo();10.JScrollPaneJScrollPane 由四个角两个头部和一个视口组成四个角和两个头部都是由ponent 组成.四个角并不是总是显示出来的.左上角只有当两个头部同时存在才显示,右下角只有两个滚动条同时出现才会出现.其他两个角可同理知道什么时候会出现.视口是显示内容的部分,由 JViewport 对象表示.而真正显示的内容,由 JViewport 的 view 表示package

31、 blog.swing;import java.awt.*;import javax.swing.*;import java.awt.event.*;class JScrollPaneDemoJFrame mainFrame;JScrollPane simpleScrollPane;JTextArea simpleTextArea;JButton changeViewport;public JScrollPaneDemo() mainFrame = new JFrame ( JScrollPaneDemo );simpleTextArea = new JTextArea(10,20);simp

32、leScrollPane = new JScrollPane( simpleTextArea );/创建一个滚动窗格,里面显示的内容是文本区域simpleScrollPatRowHeaderView( new JLabel (this is a row header) );/设置行标题simpleScrollPatColumnHeaderView(newJLabel(thisisacolumnheader) );/设置列标题simpleScrollPatCorner(JScrollPane.LOWER_RIGHT_CORNER,newJButton(corner) );/设置右下角simple

33、ScrollPatCorner(JScrollPane.UPPER_LEFT_CORNER,newJButton(corner) );/设置左上角changeViewport = new JButton (changeViewport);changeViewport.addActionListener( new ActionListener()/当单击按钮时,滚动窗口显示的内容变为另一个文本区域public void actionPerformed( ActionEvent e)simpleScrollPane.getViewport().setView( new JTextArea(chan

34、geViewpot) ););mainFrame.getContentPane().add( simpleScrollPane,BorderLayout.PAGE_START );mainFrame.getContentPane().add( changeViewport,BorderLayout.PAGE_END );mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( tru

35、e );public sic void main(String args)new JScrollPaneDemo();现在开始讲相对复杂一点的组件11.JListJList 是一个列表.这里将首次引入M这个概念,中文翻译是模型,不好理解,其实就是数据的意思.JList 用 ListM保存它的数据. 简单应用可以用实现了 ListM的AbstraceListM的子类 DefaultListM来保存它的数据(尽管它的名字有 Default,但是只有你使用了它创建JList,它才存在.即如果你没有用DefaultListM创建JList,则你用 getM()返回的 ListM不能强制转换为 Defa

36、ultListM).M构,很多组件的都有这种结即M-AbstractM-DefaultM下面讲一下DefaultListM,它的方法基本上和Vector一样,另外添加了一个 Objectgeemen(index)添加元素: voidadd(index,Object element),void addElement(Object obj),voidinseremen(Object obj,index)删 除 元素 : Object remove(index),removeElement(Object obj),voidremoveElemen(index),void removeAllEleme

37、nts(),void removeRange(fromIndex,toIndex),void clear()查询元素: Objecemen(index),Object get(index),Object geemen(index), ObjectElement(),Object lasement()修改元素 5HPKIZ YKZ OTJK 5HPKIZ KRKSKTZ UOJ YKKSKT 5HPKIZ UHP OTJK 02OYZ 自身没有对单个元素处理的方法 只有 UOJ YKZ2OYZ*GZG 5HPKIZAC ROYZ*GZG UOJYKZ2OYZ*GZG KIZUX%$ ROYZ*G

38、ZG UOJ YKZ3 2OYZ3来设置全部元素的方法S 当要对单个元素进行处理时 用 2OYZ3MKZ3 返回 3后 再对 3操作通过 UOJ GJJ2OYZ*GZG2OYZKTKX 2OYZ*GZG2OYZKTKX R 可以在 2OYZ3被修改时被通知和 02OYZ 相关的还 有 2OYZ9KRKIZOUT3 它管理 02OYZ的选择项 它没有 HYZXGIZ2OYZ9KRKIZOUT3这个子类 而直接有一个*KLGRZ2OYZ9KRKIZOUT3这个实现类 02OYZ 默认也是使用的这个实现类 和上面讲的 *KLGRZ2OYZ3不同 这个 3不用你自己创建就已存在 通过 UOJ GJJ2

39、OYZ9KRKIZOUT2OYZKTKX 2OYZ9KRKIZOUT2OYZKTKX 可以在选择改变时被通知 UOJ YKZ9KRKIZOUT3UJK YKRKIZOUT3UJK 可以设置多选 待续或非连续 或是单选*KLGRZ2OYZ9KRKIZOUT3没有返回选择了的元素的方法 它只负责去选择哪些项修改选择项的方法 UOJ GJJ9KRKIZOUTKXGR OTJK OTJK UOJ XKSUK9KRKIZOUTKXGR OTJK OTJK UOJ YKZ9KRKIZOUTKXGR OTJK OTJK UOJ IRKGX9KRKIZOUT 下面这两个方法在 2OYZ3动计算索引被更改时更改

40、选择项会更方便 因为不用根据 2OYZ3的变UOJ XKSUK/TJKKXGR OTJK OTJK UOJ OTYKXZ/TJK另外的一些方法KXGR OTJK RKTMZN HKLUXK MKZ3G9KRKIZOUT/TJK MKZ3OT9KRKIZOUT/TJK OKIZKJ/TJK OTJK OKIZOUT+SVZ_ 很多在 *KLGRZ2OYZ9KRKIZOUT3里的方法 在 02OYZ 自身里也有 例如上面的9KRKIZOUT/TTZKXGR 和 GJJ2OYZ9KRKIZOUT2OYZKTKX 另外它还有 MKZ9KRKIZKJ/TJK AC MKZ9KRKIZKJ/TJO 5HP

41、KIZ MKZ9KRKIZKJGRK 5HPKIZAC MKZ9KRKIZKJGRKY UOJ YKZ9KRKIZKJ/TJK OTJK UOJ YKZ9KRKIZKJ/TJO AC OTJO UOJ YKZ9KRKIZKJGRK 5HPKIZ GT5HPKIZ YNURJ9IXURR 最后一个内容是 自定义 02OYZ默认 02OYZ 显示的内容是 9ZXOTM 在创建它的时候 如果你把其他非 9ZXOTM 的对象传给它要它显示 它会调用 ZU9ZXOTM 然后显示返回的 9ZXOTM 通过 UOJ YKZ)KRR8KTJKXKX 2OYZ)KRR8KTJKXKX IKRR8KTJKXKX

42、可以自定义 02OYZ 显示内容的类型 参数是一个 渲染器 很多组件在自定义的时候都是用渲染器来实现的 它只一个方法 )USVUTKTZ MKZ2VUTKTZ 02OYZ ROYZ 5HPKIZ GRK OTJK OKIZKJ IKRR.GY,UIY 设你调用了YKZ)KRR8KTJKXKX 而且把 RGHKR 这个 9ZXOTM 传下面举例说明一下它如何工给 02OYZ 要它显示 那么 RGHKR 这个值就会传给上面这个方法的 GRK 这个值 这时你可以用 RGHKR 构造一个组件 然后返回 例如 你可以 02GHKR RGHKR # TK02GHKR 9ZXOTM GRK ! XKZXT

43、RGHKR 这样 在 02OYZ 就会显示一个 02GHKR 了 package blog.swing;import java.awt.*;import javax.swing.event.*;import javax.swing.*;class JListCustomDemoJFrame mainFrame;JList simpleList;public JListCustomDemo()mainFrame = new JFrame (JListCustomDemo);final DefaultListMm= new DefaultListM();m.addElement(button1);

44、m.addElement(button2);simpleList = new JList(m);simpleList.setCellRenderer( new CustomListCellRenderer() );simpleList.addListSelectionListener( new ListSelectionListener()public void valueChanged( ListSelectionEvent e)System.out.prln( m.geemen( simpleList.getSelectedIndex() ) ););mainFrame.add(simpl

45、eList);mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame.setLocationRelativeTo(null);mainFrame.pack();mainFrame.setVisible( true );public sic void main(String args)new JListCustomDemo();class CustomListCellRenderer implements ListCellRendererpublic Component getLponent(JList list,

46、Object value,index,iected,cellHasFocus)return new JButton( (String)value );package blog.swing;import java.util.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;class JListDemoJFrame mainFrame;JList simpleList;JButton changeSelections;public JListDemo() mainFrame = new JFrame ( JListD

47、emo );/* Vector listData = new Vector();listData.add(data1);listData.add(data2);listData.add(data3);listData.add(data4);simpleList = new JList( listData );*/DefaultListMdlm = new DefaultListM();dlm.addElement(data1);dlm.addElement(data2);dlm.addElement(data3);dlm.addElement(data4);simpleList = new J

48、List( dlm );changeSelections = new JButton (changeSelections);changeSelections.addActionListener( new ActionListener()public void actionPerformed( ActionEvent e)DefaultListSelectionMdlsm=(DefaultListSelectionpleList.getSelectionM();/dlsm.addSelectionerval(0,1);/dlsm.removeSelectionerval(0,1);dlsm.se

49、tSelectionerval(0,1);/* DefaultListMdlm = (DefaultListpleList.getM();dlm.remove(0);dlm.remove(1);*/);mainFrame.getContentPane().add( simpleList,BorderLayout.PAGE_START );mainFrame.getContentPane().add( changeSelections,BorderLayout.PAGE_END );mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE

50、);mainFrame.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JListDemo();boBox组合框和 JList 很相似,它们都是用 ListM来保存数据.默认它是使用实现了 ListM的子接口ComboBoxMboBoxM来保存数据的.与JList 的情况不的boBox 总是有一个 M来保存数据的,而 JList 则不然.同一个boBoxM的方法:添加元素:addElement(Object object)

51、,inseremen(Object object,index)素:removeElement(Objectobject),removeElemen(删除元index),removeAllElements()获取元素:geemen(index)和选择有关的:getSelectedItem(),setSelectedItem(Object object)此外还有 getSize(),getIndexOf(Object object)JComboBox 自身也有一些处理项的方法:void addItem(Object anObject),void insertItemAt(Object anObje

52、ct,index)voidremoveItem(ObjectanObject),voidremoveItemAt(anIndex),voidremoveAllItems()Object getItemAt(index)getItemCount()boBoxM里的方法的 Element 改为 Item以上基本上是把getSelectedIndex(),Object getSelectedItem(),Object getSelectedObjects()通过在 JComboBox 上添加 ActionListener,可以在选择改变了的时候作出响应.最后是自定义组合框. 通过调用和 JList

53、一样的 void setRenderer(ListCellRendereraRenderer) 就可以自定义组合框.下面的例子示范了在 JComboBox 里显示package blog.swing;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.*;class JComboBoxDemoJFrame mainFrame;JComboBoxboBox;public JComboBoxDemo() mainFrame = new JFrame ( JComboBoxDemo );Vec

54、tor cbData = new Vector();cbData.add(images/Pig.gif);cbData.add(images/Bird.gif);cbData.add(images/Dog.gif);cbData.add(images/Cat.gif);boBox = new JComboBox( cbData);boBox.setPreferredSize( new Dimen(200,130) );boBox.setumRowCount(2);boBox.setRenderer( newboBoxRenderer() );mainFrame.getContentPane()

55、.add(boBox );boBox.addActionListener( new ActionListener()public void actionPerformed( ActionEvent e)System.out.prln( selection changed );System.out.prln(boBox.getSelectedItem() ););boBox.setCursor( new Cursor(Cursor.HAND_CURSOR) );mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );mainFrame

56、.pack();mainFrame.setLocationRelativeTo(null);mainFrame.setVisible( true );public sic void main(String args)new JComboBoxDemo();classboBoxRenderer extends JLabel implements ListCellRendererboBoxRenderer()setOpaque(true);setHorizontalAlignment(CENTER);setVerticalAlignment(CENTER);public Component get

57、Lponent(JList list,Object value,index,iected,cellHasFocus)if (iected) setBackground(list.getSelectionBackground();setForeground(list.getSelectionForeground(); else setBackground(list.getBackground();setForeground(list.getForeground();String imageFileName = (String)value;ImageIcon labelIcon = new Ima

58、geIcon( imageFileName );setText( imageFileName.substring(imageFileName.lastIndexOf(/)+1) );setIcon( labelIcon );return this;13.JFileChooser0,ORK)NUUYKX 代表一个打开 保存文件框三个较简单的构造函数 0,ORK)NUUYKX 0,ORK)NUUYKX ,ORKIXXKTZ*OXKIZUX_ 0,ORK)NUUYKX 9ZXOTMIXXKTZ*OXKIZUX_6GZN 构 造 对 象 以 后 调 用YNU5VKT*OGRUM )USVUTKTZVG

59、XKTZ 或YNU9GK*OGRUM )USVUTKTZ VGXKTZ 显示打开 保存框调用YNU*OGRUM )USVUTKTZ VGXKTZ 9ZXOTM GVVXUK(ZZUT:KZ 显示自定义打开 保存按钮文字的框三个方法的返回值都是整型 当按下打开 保存时 返回 6685+E56:/54 否则返回)4)+2E56:/54可以用 PGG YOTM LORKINUUYKX ,ORK,ORZKX 来过滤不需要显示的文件 它只有两个方法GIIKVZ ,ORK L 通过通过判断 L 的后缀来决定显示与否 要显示则返回 ZXK 否则返回 LGRYK9ZXOTM MKZ*KYIXOVZOUT 返回

60、对这个过滤器的描述和 ,ORK,ORZKX 有关的方法 UOJ YKZ,ORK,ORZKX ,ORK,ORZKX LORZKX UOJ GJJ)NUUYGHRK,ORK,ORZKX ,ORK,ORZKX LORZKX 选 择 的 文 件 改 变 但 是 未 按 下 打 开 或 保 存 按 钮 时 会 有当PGG HKGTY 6XUVKXZ_)NGTMK+KTZ 产生通过 UOJ GJJ6XUVKXZ_)NGTMK2OYZKT件进行侦听XUVKXZ_)NGTMK2OYZKTKX ROYZKTKX 可以对此事6XUVKXZ_)NGTMK+KTZ 的方法有 5HPKIZ MKZ4KGRK 5HPKI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论