版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、學習 swing 組件,主要有三個內(nèi)容一是組件的顯示,二是對組件支持的事件進行偵聽,三是是自定義組件1.JFrameJFrame 是主窗口,它和 JDialog,JApplet 的地位并列.但是,一個 JFrame 可以添加 JDialog和 JApplet 進去它的內(nèi)容面板,而反過來就下面來看 JFrame 的例子=package blog.swing;import javax.swing.*;import java.awt.event.*;class JFrameDemoJFrame mainFrame;public JFrameDemo() mainFrame = new JFrame
2、( JFrameDemo Title ); /創(chuàng)建一個 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、這里出現(xiàn)了三個不同的窗口事件偵,并實現(xiàn)了它們所有的方法WindowListener 和 WindowFocusListener 都可以對窗口失去,獲得焦點進行偵聽,不同的是, 非幀窗口和框窗口不能接收 WindowListener 的 windowActivated 和windodwDeactivated 事件雖然可以用WindowListener 對窗口的一些狀態(tài)進行偵聽,但是WindowSeListener 提供了的支持.例如,WindowSeListener 可以處理還原窗口的事件,可以判斷一個窗口是不是在垂直和水平兩個方向都可以最大化(命令提示符窗口只可以在垂直方向上最大化),而這些都
7、是 WindowListener 都為力2.JLabelJLabel 是一.在它的文本里嵌入 html,可以簡單實現(xiàn)一個超組件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()/添加鼠標事件偵,當單擊時,打開網(wǎng)頁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();/使窗口自動根據(jù)添加了的組件調(diào)整大小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()/添加動作偵,當按鈕被按下時執(zhí)行這里的代碼以打開網(wǎng)頁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);/構(gòu)造寬度為20個字符的文本框mainFrame.getContentPane().add( simpleTextField );simpleTextField.addActionListener( new ActionListener()/在輸入字符后按回車執(zhí)行行代碼,在標準輸出窗口輸出它的內(nèi)容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文本區(qū)域,與文本框不同的是它是多行的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);/創(chuàng)建一個顯示10行20列的文本域simpleTextArea.setLineWrap(true);/設置它自動換行simpleTextArea.setWrapStyleWord(true);/設置
16、它自動換行時根據(jù)單詞換行,而不是根據(jù)字符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()/回車時執(zhí)行的動作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 組成.四個角并不是總是顯示出來的.左上角只有當兩個頭部同時存在才顯示,右下角只有兩個滾動條同時出現(xiàn)才會出現(xiàn).其他兩個角可同理知道什么時候會出現(xiàn).視口是顯示內(nèi)容的部分,由 JViewport 對象表示.而真正顯示的內(nèi)容,由 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 );/創(chuàng)建一個滾動窗格,里面顯示的內(nèi)容是文本區(qū)域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()/當單擊按鈕時,滾動窗口顯示的內(nèi)容變?yōu)榱硪粋€文本區(qū)域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();現(xiàn)在開始講相對復雜一點的組件11.JListJList 是一個列表.這里將首次引入M這個概念,中文翻譯是模型,不好理解,其實就是數(shù)據(jù)的意思.JList 用 ListM保存它的數(shù)據(jù). 簡單應用可以用實現(xiàn)了 ListM的AbstraceListM的子類 DefaultListM來保存它的數(shù)據(jù)(盡管它的名字有 Default,但是只有你使用了它創(chuàng)建JList,它才存在.即如果你沒有用DefaultListM創(chuàng)建JList,則你用 getM()返回的 ListM不能強制轉(zhuǎn)換為 Defa
36、ultListM).M構(gòu),很多組件的都有這種結(jié)即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這個實現(xiàn)類 02OYZ 默認也是使用的這個實現(xiàn)類 和上面講的 *KLGRZ2OYZ3不同 這個 3不用你自己創(chuàng)建就已存在 通過 UOJ GJJ2
39、OYZ9KRKIZOUT2OYZKTKX 2OYZ9KRKIZOUT2OYZKTKX 可以在選擇改變時被通知 UOJ YKZ9KRKIZOUT3UJK YKRKIZOUT3UJK 可以設置多選 待續(xù)或非連續(xù) 或是單選*KLGRZ2OYZ9KRKIZOUT3沒有返回選擇了的元素的方法 它只負責去選擇哪些項修改選擇項的方法 UOJ GJJ9KRKIZOUTKXGR OTJK OTJK UOJ XKSUK9KRKIZOUTKXGR OTJK OTJK UOJ YKZ9KRKIZOUTKXGR OTJK OTJK UOJ IRKGX9KRKIZOUT 下面這兩個方法在 2OYZ3動計算索引被更改時更改
40、選擇項會更方便 因為不用根據(jù) 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 最后一個內(nèi)容是 自定義 02OYZ默認 02OYZ 顯示的內(nèi)容是 9ZXOTM 在創(chuàng)建它的時候 如果你把其他非 9ZXOTM 的對象傳給它要它顯示 它會調(diào)用 ZU9ZXOTM 然后顯示返回的 9ZXOTM 通過 UOJ YKZ)KRR8KTJKXKX 2OYZ)KRR8KTJKXKX IKRR8KTJKXKX
42、可以自定義 02OYZ 顯示內(nèi)容的類型 參數(shù)是一個 渲染器 很多組件在自定義的時候都是用渲染器來實現(xiàn)的 它只一個方法 )USVUTKTZ MKZ2VUTKTZ 02OYZ ROYZ 5HPKIZ GRK OTJK OKIZKJ IKRR.GY,UIY 設你調(diào)用了YKZ)KRR8KTJKXKX 而且把 RGHKR 這個 9ZXOTM 傳下面舉例說明一下它如何工給 02OYZ 要它顯示 那么 RGHKR 這個值就會傳給上面這個方法的 GRK 這個值 這時你可以用 RGHKR 構(gòu)造一個組件 然后返回 例如 你可以 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來保存數(shù)據(jù).默認它是使用實現(xiàn)了 ListM的子接口ComboBoxMboBoxM來保存數(shù)據(jù)的.與JList 的情況不的boBox 總是有一個 M來保存數(shù)據(jù)的,而 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,可以在選擇改變了的時候作出響應.最后是自定義組合框. 通過調(diào)用和 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 代表一個打開 保存文件框三個較簡單的構(gòu)造函數(shù) 0,ORK)NUUYKX 0,ORK)NUUYKX ,ORKIXXKTZ*OXKIZUX_ 0,ORK)NUUYKX 9ZXOTMIXXKTZ*OXKIZUX_6GZN 構(gòu) 造 對 象 以 后 調(diào) 用YNU5VKT*OGRUM )USVUTKTZVG
59、XKTZ 或YNU9GK*OGRUM )USVUTKTZ VGXKTZ 顯示打開 保存框調(diào)用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 產(chǎn)生通過 UOJ GJJ6XUVKXZ_)NGTMK2OYZKT件進行偵聽XUVKXZ_)NGTMK2OYZKTKX ROYZKTKX 可以對此事6XUVKXZ_)NGTMK+KTZ 的方法有 5HPKIZ MKZ4KGRK 5HPKI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國童裝面料數(shù)據(jù)監(jiān)測研究報告
- 倉儲物流設備交易居間合同
- 保健服務居間合同
- 商場改造廢棄物清運合同
- 2025至2030年中國不銹鋼玻璃夾數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國三邊封立式包裝機數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國PET保鮮瓶數(shù)據(jù)監(jiān)測研究報告
- 2025年中國磨光電機市場調(diào)查研究報告
- 2025至2031年中國出料壺行業(yè)投資前景及策略咨詢研究報告
- 音樂版權(quán)居間服務協(xié)議合同
- 茶室經(jīng)營方案
- 軍隊文職崗位述職報告
- 小學數(shù)學六年級解方程練習300題及答案
- 電抗器噪聲控制與減振技術
- 中醫(yī)健康宣教手冊
- 2024年江蘇揚州市高郵市國有企業(yè)招聘筆試參考題庫附帶答案詳解
- 消費醫(yī)療行業(yè)報告
- 品學課堂新范式
- GB/T 1196-2023重熔用鋁錠
- 運輸行業(yè)員工崗前安全培訓
- 公路工程安全風險辨識與防控手冊
評論
0/150
提交評論