swing組件詳細(xì)介紹_第1頁
swing組件詳細(xì)介紹_第2頁
swing組件詳細(xì)介紹_第3頁
swing組件詳細(xì)介紹_第4頁
swing組件詳細(xì)介紹_第5頁
已閱讀5頁,還剩84頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、學(xué)習(xí) swing 組件,主要有三個內(nèi)容一是組件的顯示,二是對組件支持的事件進(jìn)行偵聽,三是是自定義組件1.JFrameJFrame 是主窗口,它和 JDialog,JApplet 的地位并列.但是,一個 JFrame 可以添加 JDialog和 JApplet 進(jìn)去它的內(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 );/設(shè)置關(guān)閉動作mainFrame.setSize( 300,300 );/設(shè)置窗口大小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 都可以對窗口失去,獲得焦點進(jìn)行偵聽,不同的是, 非幀窗口和框窗口不能接收 WindowListener 的 windowActivated 和windodwDeactivated 事件雖然可以用WindowListener 對窗口的一些狀態(tài)進(jìn)行偵聽,但是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()/添加鼠標(biāo)事件偵,當(dāng)單擊時,打開網(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) );/設(shè)置手形鼠標(biāo)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()/添加動作偵,當(dāng)按鈕被按下時執(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í)行行代碼,在標(biāo)準(zhǔn)輸出窗口輸出它的內(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);/設(shè)置它自動換行simpleTextArea.setWrapStyleWord(true);/設(shè)置

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(*);/設(shè)定要顯示的字符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復(fù)選框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 組成.四個角并不是總是顯示出來的.左上角只有當(dāng)兩個頭部同時存在才顯示,右下角只有兩個滾動條同時出現(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) );/設(shè)置行標(biāo)題simpleScrollPatColumnHeaderView(newJLabel(thisisacolumnheader) );/設(shè)置列標(biāo)題simpleScrollPatCorner(JScrollPane.LOWER_RIGHT_CORNER,newJButton(corner) );/設(shè)置右下角simple

33、ScrollPatCorner(JScrollPane.UPPER_LEFT_CORNER,newJButton(corner) );/設(shè)置左上角changeViewport = new JButton (changeViewport);changeViewport.addActionListener( new ActionListener()/當(dāng)單擊按鈕時,滾動窗口顯示的內(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)在開始講相對復(fù)雜一點的組件11.JListJList 是一個列表.這里將首次引入M這個概念,中文翻譯是模型,不好理解,其實就是數(shù)據(jù)的意思.JList 用 ListM保存它的數(shù)據(jù). 簡單應(yīng)用可以用實現(xiàn)了 ListM的AbstraceListM的子類 DefaultListM來保存它的數(shù)據(jù)(盡管它的名字有 Default,但是只有你使用了它創(chuàng)建JList,它才存在.即如果你沒有用DefaultListM創(chuàng)建JList,則你用 getM()返回的 ListM不能強(qiáng)制轉(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來設(shè)置全部元素的方法S 當(dāng)要對單個元素進(jìn)行處理時 用 2OYZ3MKZ3 返回 3后 再對 3操作通過 UOJ GJJ2OYZ*GZG2OYZKTKX 2OYZ*GZG2OYZKTKX R 可以在 2OYZ3被修改時被通知和 02OYZ 相關(guān)的還 有 2OYZ9KRKIZOUT3 它管理 02OYZ的選擇項 它沒有 HYZXGIZ2OYZ9KRKIZOUT3這個子類 而直接有一個*KLGRZ2OYZ9KRKIZOUT3這個實現(xiàn)類 02OYZ 默認(rèn)也是使用的這個實現(xiàn)類 和上面講的 *KLGRZ2OYZ3不同 這個 3不用你自己創(chuàng)建就已存在 通過 UOJ GJJ2

39、OYZ9KRKIZOUT2OYZKTKX 2OYZ9KRKIZOUT2OYZKTKX 可以在選擇改變時被通知 UOJ YKZ9KRKIZOUT3UJK YKRKIZOUT3UJK 可以設(shè)置多選 待續(xù)或非連續(xù) 或是單選*KLGRZ2OYZ9KRKIZOUT3沒有返回選擇了的元素的方法 它只負(fù)責(zé)去選擇哪些項修改選擇項的方法 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默認(rèn) 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 設(shè)你調(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ù).默認(rèn)它是使用實現(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)和選擇有關(guān)的: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,可以在選擇改變了的時候作出響應(yīng).最后是自定義組合框. 通過調(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 顯示自定義打開 保存按鈕文字的框三個方法的返回值都是整型 當(dāng)按下打開 保存時 返回 6685+E56:/54 否則返回)4)+2E56:/54可以用 PGG YOTM LORKINUUYKX ,ORK,ORZKX 來過濾不需要顯示的文件 它只有兩個方法GIIKVZ ,ORK L 通過通過判斷 L 的后綴來決定顯示與否 要顯示則返回 ZXK 否則返回 LGRYK9ZXOTM MKZ*KYIXOVZOUT 返回

60、對這個過濾器的描述和 ,ORK,ORZKX 有關(guān)的方法 UOJ YKZ,ORK,ORZKX ,ORK,ORZKX LORZKX UOJ GJJ)NUUYGHRK,ORK,ORZKX ,ORK,ORZKX LORZKX 選 擇 的 文 件 改 變 但 是 未 按 下 打 開 或 保 存 按 鈕 時 會 有當(dāng)PGG HKGTY 6XUVKXZ_)NGTMK+KTZ 產(chǎn)生通過 UOJ GJJ6XUVKXZ_)NGTMK2OYZKT件進(jìn)行偵聽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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論