Java程序設(shè)計(jì):第10章 圖形用戶界面
《Java程序設(shè)計(jì):第10章 圖形用戶界面》由會員分享,可在線閱讀,更多相關(guān)《Java程序設(shè)計(jì):第10章 圖形用戶界面(127頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第10章 圖形用戶界面2n概述概述n用戶界面用戶界面n組件介紹組件介紹n布局管理布局管理n事件處理事件處理n菜單和表格菜單和表格3n了解了解AWTAWT和和SwingSwingn熟悉熟悉4 4個(gè)頂層容器個(gè)頂層容器n掌握掌握J(rèn)FrameJFramen熟悉常用的中間容器熟悉常用的中間容器n會對組件進(jìn)行布局會對組件進(jìn)行布局n熟悉常用基本組件的創(chuàng)建和操作熟悉常用基本組件的創(chuàng)建和操作n會設(shè)置組件的顏色和字體會設(shè)置組件的顏色和字體n會處理組件上發(fā)生的事件會處理組件上發(fā)生的事件n會創(chuàng)建菜單和表格會創(chuàng)建菜單和表格4n 用戶界面的類型用戶界面的類型字符用戶界面字符用戶界面(CUI):例如,):例如,MS-DOS
2、圖形用戶界面(圖形用戶界面(GUI):):例如例如,Microsoft Windowsn GUIGUI的組件的組件基本的控制組件,基本的控制組件,例如:例如:Button、Label等等。容器:容器:能容納和排列組件的組件能容納和排列組件的組件組件組件組件繼承它的父容器的性質(zhì)5MenuList BoxCheck BoxRadio ButtonButtonLabel Frame WindowText BoxCombo Box6nAWTAWT(Abstract Window Toolkit)是在)是在Swing出現(xiàn)之前出現(xiàn)之前用來設(shè)計(jì)界面的工具包用來設(shè)計(jì)界面的工具包用用awt包中的類創(chuàng)建的用戶界面
3、在不同的操作平臺上有包中的類創(chuàng)建的用戶界面在不同的操作平臺上有不同的表現(xiàn)。不同的表現(xiàn)。使用不靈活使用不靈活import java.awt.*;nSwingSwing是對是對AWT的擴(kuò)展,它是的擴(kuò)展,它是Java 2中的一個(gè)標(biāo)準(zhǔn)包中的一個(gè)標(biāo)準(zhǔn)包n組件組件都以都以J開頭開頭,例如:,例如:JFrame、JButton等。等。swing界界面在不同的平臺上外觀完全一樣,真正做到平臺獨(dú)立面在不同的平臺上外觀完全一樣,真正做到平臺獨(dú)立nimport javax.swing.*;7java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Pa
4、neljava.awt.Windowjava.applet.AppletJAppletjavax.swing.JComponentjava.awt.Dialogjava.awt.FrameJDialogJFrameJWindowSwing組件組件89n一個(gè)頂層容器(即主窗口)一個(gè)頂層容器(即主窗口)n頂層容器包含若干個(gè)中間容器頂層容器包含若干個(gè)中間容器n每個(gè)中間容器包含若干個(gè)基本組件每個(gè)中間容器包含若干個(gè)基本組件n按照合理的布局方式將它們組織在一起按照合理的布局方式將它們組織在一起n基本組件可響應(yīng)發(fā)生在其上的事件基本組件可響應(yīng)發(fā)生在其上的事件10n容器容器 容器是用來容納和管理一組界面元素的對
5、象?;救萜魇怯脕砣菁{和管理一組界面元素的對象?;窘M件必須被安排在某個(gè)容器中,否則就無法使用。組件必須被安排在某個(gè)容器中,否則就無法使用。JFrameContainerJWindowJPanelJDialogJApplet有邊框容器無邊框容器11nJFrame , JApplet , JDialog , JWindow 作用:創(chuàng)建初始界面,為其他組件提供一作用:創(chuàng)建初始界面,為其他組件提供一個(gè)容器,以構(gòu)建滿足用戶需求的操作界面?zhèn)€容器,以構(gòu)建滿足用戶需求的操作界面nJFrame用來創(chuàng)建用來創(chuàng)建application,最常用的,最常用的nJApplet用來創(chuàng)建用來創(chuàng)建appletnJDialog
6、用來創(chuàng)建對話框,常用用來創(chuàng)建對話框,常用nJWindow不常用不常用12nJPanel , JScrollPane , JSplitPane , JTabbedPane、JInternalFrame、Box 這些容器提供將有關(guān)組件按照某種布局組合在這些容器提供將有關(guān)組件按照某種布局組合在一起,然后放入中間容器或頂層容器的功能一起,然后放入中間容器或頂層容器的功能nJPanel提供一個(gè)面板提供一個(gè)面板nJScrollPane是具有滾動(dòng)條的窗格是具有滾動(dòng)條的窗格nJSplitPane是具有拆分功能的窗格是具有拆分功能的窗格nJTabbedPane是帶有若干標(biāo)簽的分類窗格是帶有若干標(biāo)簽的分類窗格nJ
7、InternalFrame用于創(chuàng)建內(nèi)嵌于用于創(chuàng)建內(nèi)嵌于JFrame中的內(nèi)中的內(nèi)部框架部框架nBox提供創(chuàng)建橫向提供創(chuàng)建橫向/縱向盒子容器的功能縱向盒子容器的功能13nJLabelnJButton、JCheckBox、JRadioButtonnJList、JComboBoxnJTextField、JPasswordField、JTextAreanJToolBar、JToolTip、JProgressBarnJSlider、JSpinnernJFileChooser、JColorChoosernJMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioBut
8、tonMenuItem、JPopupMenunJTablenJTreenJOptionPane、JSeparator14n類類 JFrameJFrame 是是java.awt.Framejava.awt.Frame的子類的子類n在在SwingSwing的組件中的組件中, , JFrameJFrame 并不全是由并不全是由JavaJava編寫的編寫的是一種與平臺關(guān)系比較密切的組件是一種與平臺關(guān)系比較密切的組件(Heavyweight component)java.lang.Object | +-java.awt.Component | +-java.awt.Container | +-java.
9、awt.Window | +-java.awt.Frame | +-javax.swing.JFrame15構(gòu)造方法構(gòu)造方法JFrame() 創(chuàng)建無標(biāo)題窗口。創(chuàng)建無標(biāo)題窗口。JFrame(String s) 創(chuàng)建標(biāo)題名字是字符串創(chuàng)建標(biāo)題名字是字符串s的窗口。的窗口。例如:例如:JFrame f = new JFrame(“Hello”);常用方法常用方法setTitle(StringsetTitle(String title) title) 設(shè)置設(shè)置JFrameJFrame標(biāo)題文本標(biāo)題文本get/ get/ setSizesetSize()():獲?。韩@取/ /設(shè)置設(shè)置JFrameJFrame
10、的大小。的大小。add(Objectadd(Object a) a):將組件添加到:將組件添加到JFrameJFrame中。中。dispose()dispose()關(guān)閉關(guān)閉JFrameJFrame并回收用于創(chuàng)建窗口的任何資源。并回收用于創(chuàng)建窗口的任何資源。setVisible(booleansetVisible(boolean b) b)設(shè)置設(shè)置JFrameJFrame的可見性。的可見性。setLocation(x,ysetLocation(x,y) ) 設(shè)置設(shè)置JFrameJFrame在屏幕的位置在屏幕的位置16n常用方法常用方法void void setExtendedState(ints
11、etExtendedState(int););/設(shè)置擴(kuò)展的狀態(tài),取值:設(shè)置擴(kuò)展的狀態(tài),取值: NORMALNORMAL ICONIFIED ICONIFIED MAXIMIZED_HORIZ MAXIMIZED_HORIZ MAXIMIZED_VERT MAXIMIZED_VERT MAXIMIZED_BOTH MAXIMIZED_BOTH /最大化最大化void void setDefaultCloseOperation(intsetDefaultCloseOperation(int););/設(shè)置默認(rèn)的關(guān)閉時(shí)的操作,取值:設(shè)置默認(rèn)的關(guān)閉時(shí)的操作,取值: DO_NOTHING_ON_CLOSE
12、DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE EXIT_ON_CLOSE /關(guān)閉關(guān)閉17 import javax.swing.*; public class FirstJFrame public static void main(String args) JFrame f = new JFrame(); f.setTitle(My First JFrame); f.setDefaultCloseOperation(JFrame.EXIT_ON_CL
13、OSE); f.setSize(300, 300); f.setVisible(true); 18import javax.swing.*; public class SecondJFrame extends JFrame public SecondJFrame() super(“My Second JFrame”); setDefaultCloseOperation(EXIT_ON_CLOSE); setExtendedState(MAXIMIZED_BOTH); setVisible(true); public static void main(String args) SecondJFr
14、ame f = new SecondJFrame(); 19n由由JFrame創(chuàng)建初始的用戶界面創(chuàng)建初始的用戶界面n由由JPanel、JScrollPane、JTabbedPane、JSplitPane、JInternalFrame、Box等創(chuàng)建中間容器等創(chuàng)建中間容器n由基本組件類創(chuàng)建有關(guān)的組件由基本組件類創(chuàng)建有關(guān)的組件n將基本組件按照某種布局添加到中間容器中,根據(jù)需將基本組件按照某種布局添加到中間容器中,根據(jù)需要可能會用到容器的嵌套要可能會用到容器的嵌套n將中間容器按照某種布局添加到頂層容器中,形成滿將中間容器按照某種布局添加到頂層容器中,形成滿足用戶需求的操作界面足用戶需求的操作界面20C
15、ontainer con = Container con = getContentPanegetContentPane();();JPanelJPanel panel = new panel = new JPanelJPanel();();JButtonJButton butt = new butt = new JButton(JButton(PressPress Me Me););panel.add(buttpanel.add(butt););con.add(panelcon.add(panel););21n學(xué)生基本信息錄入界面的設(shè)計(jì)學(xué)生基本信息錄入界面的設(shè)計(jì)設(shè)計(jì)一個(gè)用戶界面,用于輸入學(xué)生的
16、下列信息:設(shè)計(jì)一個(gè)用戶界面,用于輸入學(xué)生的下列信息: 姓名姓名JTextFieldJTextField密碼密碼JPasswordFieldJPasswordField 性別性別JRadioButtonJRadioButton黨否黨否JCheckBoxJCheckBox 年齡年齡JSpinnerJSpinner顏色顏色 JColorChooserJColorChooser 加分加分JSliderJSlider系別系別JComboBoxJComboBox 選課選課JListJList確認(rèn)確認(rèn)JButtonJButton 保存保存JFileChooserJFileChooser結(jié)果結(jié)果JTextAr
17、eaJTextArea要求輸入完畢按要求輸入完畢按“確認(rèn)確認(rèn)”將該學(xué)生的信息記錄到將該學(xué)生的信息記錄到“結(jié)果結(jié)果”中;按中;按“保存保存”將結(jié)果保存到一個(gè)指定的文件中;基本信息與結(jié)將結(jié)果保存到一個(gè)指定的文件中;基本信息與結(jié)果界面上下分布在一個(gè)果界面上下分布在一個(gè)JSplitPaneJSplitPane中;屏幕下方顯示當(dāng)前中;屏幕下方顯示當(dāng)前時(shí)間時(shí)間22步驟一:步驟一:由由JFrame創(chuàng)建初始的用戶界面,獲得創(chuàng)建初始的用戶界面,獲得JFrame的容器,的容器,添加中間容器添加中間容器JPanelJFrame f=new JFrame();f.setTitle(學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng));
18、f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setExtendedState(MAXIMIZED_BOTH);/f.setSize(800,600);/f.setLocation(200,200);Container con=f.getContentPane();JPanel pan=new JPanel();con.add(pan);f.setVisible(true);2324標(biāo)簽標(biāo)簽 標(biāo)簽(標(biāo)簽(JLabelJLabel)是最簡單的組件,用于顯示單行靜態(tài)文本。)是最簡單的組件,用于顯示單行靜態(tài)文本。用戶只能查看其內(nèi)容而不能對其進(jìn)行
19、修改。用戶只能查看其內(nèi)容而不能對其進(jìn)行修改。 標(biāo)簽類沒有事件響應(yīng)。標(biāo)簽類沒有事件響應(yīng)。構(gòu)造方法構(gòu)造方法標(biāo)簽內(nèi)容一般不需要改變,但也可以使用標(biāo)簽內(nèi)容一般不需要改變,但也可以使用setTextsetText和和setIconsetIcon方方法進(jìn)行改變法進(jìn)行改變例如當(dāng)使用同一標(biāo)簽顯示不同的圖片時(shí),就可使用例如當(dāng)使用同一標(biāo)簽顯示不同的圖片時(shí),就可使用setIconsetIcon方方法實(shí)現(xiàn)法實(shí)現(xiàn)25步驟二:步驟二:添加標(biāo)簽(要錄入的基本信息的名稱)添加標(biāo)簽(要錄入的基本信息的名稱)JFrame f=new JFrame();Container con=f.getContentPane();Jpanel
20、 pan=new JPanel();JLabel l_xm=new JLabel(姓名姓名);pan.add(l_xm);JLabel l_xb=new JLabel(性別性別);pan.add(l_xb);con.add(pan);f.setVisible(true);26n按鈕是常用的功能組件,表示按鈕的類為按鈕是常用的功能組件,表示按鈕的類為JButton。構(gòu)造方法構(gòu)造方法JButtonJButton button1 = new button1 = new JButtonJButton( (“姓名姓名”););ImageIconImageIcon ii = new ii = new Im
21、ageIcon(ImageIcon(“java.gif”););JButtonJButton button2 = new button2 = new JButton(iiJButton(ii););JButtonJButton button3 = new button3 = new JButtonJButton( (“姓名姓名”,ii);ii);常用方法常用方法void void setActionCommand(StringsetActionCommand(String););void void addActionListener(ActionListeneraddActionListene
22、r(ActionListener););按鈕按鈕27步驟二:步驟二:添加按鈕(確認(rèn)和保存按鈕)添加按鈕(確認(rèn)和保存按鈕)JFrame f=new JFrame(); Container con=f.getContentPane();JPanel pan=new JPanel();JLabel l_xml_xm=new JLabel(姓名姓名);pan.add(l_xm); JButton b_sub=new JButton(確認(rèn)確認(rèn));pan.add(b_sub);JButton b_save=new JButton(保存保存);pan.add(b_save); con.add(pan);f.
23、setVisible(true);28n構(gòu)造方法構(gòu)造方法JTextField tf1 = new JTextField(10);JTextField tf2 = new TextField(“aa”);JTextField tf3 = new JTextField(“aa”,8);ComponentTextComponentJTextFieldJTextArea單行的文本框單行的文本框多行的文本區(qū)多行的文本區(qū)文本框(文本框(JTextField)n其它方法其它方法 public String getText() public String getSelectedText() public vo
24、id setText(String s) public void setEchoChar(char c) public void setEditable(boolean b)29步驟二:步驟二:添加文本框(錄入姓名信息)添加文本框(錄入姓名信息)JFrame f=new JFrame(); Container con=f.getContentPane();JPanel pan=new JPanel();JLabel l_xm=new JLabel(姓名姓名);pan.add(l_xm);JTextField tf_name=new JTextField(20);pan.add(tf_name)
25、;con.add(pan);f.setVisible(true);30n構(gòu)造方法構(gòu)造方法 JTextAreaJTextArea ta1 = new ta1 = new JTextAreaJTextArea(5,5);(5,5);JTextAreaJTextArea ta2 = new ta2 = new JTextAreaJTextArea( (“abab”,8,7);,8,7);ComponentTextComponentJTextFieldJTextArea單行的文本框單行的文本框多行的文本區(qū)多行的文本區(qū)文本區(qū)(文本區(qū)(JTextArea)n其它方法其它方法 public getCaret
26、Position() public void insert(String str,int pos) public String getSelectedText() public int getSelectionStart() public int getSelectionEnd() public void replaceRange(String str,int start,int end) 31n應(yīng)用中經(jīng)常將文本區(qū)對象放入一個(gè)滾動(dòng)窗格中,應(yīng)用中經(jīng)常將文本區(qū)對象放入一個(gè)滾動(dòng)窗格中,以使用滾動(dòng)條功能,方法如下:以使用滾動(dòng)條功能,方法如下:1.1.JTextAreaJTextArea tata =
27、new JTextArea(10,10); = new JTextArea(10,10);2.2.JScrollPaneJScrollPane sp = new sp = new JScrollPane(taJScrollPane(ta););文本區(qū)(文本區(qū)(JTextArea)32步驟二:步驟二:添加文本域(顯示錄入結(jié)果信息)添加文本域(顯示錄入結(jié)果信息)JFrame f=new JFrame(); Container con=f.getContentPane();Jpanel pan=new JPanel(); Jlabel l_jg=new JLabel(錄入結(jié)果錄入結(jié)果);JTextA
28、rea result=new JTextArea(10,30);JScrollPane sp=new JScrollPane(result);pan.add(sp); pan.add(l_jg);con.add(pan);f.setVisible(true);33單選按鈕(單選按鈕( JRadioButton )n構(gòu)造方法(與構(gòu)造方法(與JButton類似)類似)JRadioButtonJRadioButton rbutt1 = new rbutt1 = new JRadioButtonJRadioButton( (“男男”, true););ImageIconImageIcon ii = n
29、ew ii = new ImageIcon(ImageIcon(“java.gif”););JRadioButtonJRadioButton rbutt2 = new rbutt2 = new JRadioButton(iiJRadioButton(ii););JRadioButtonJRadioButton rbutt3 = new rbutt3 = new JRadioButtonJRadioButton( (“女女”,iiii,false);false);n常用方法常用方法void void addActionListener(ActionListeneraddActionListene
30、r(ActionListener););void void addItemListener(ItemListeneraddItemListener(ItemListener););booleanboolean isSelectedisSelected();();void void setSelected(booleansetSelected(boolean););34n使用單選按鈕時(shí)經(jīng)常用到使用單選按鈕時(shí)經(jīng)常用到ButtonGroupButtonGroup類,如下類,如下創(chuàng)建按鈕組對象創(chuàng)建按鈕組對象ButtonGroupButtonGroup bgbg = new = new ButtonGr
31、oupButtonGroup();();創(chuàng)建若干單選按鈕對象創(chuàng)建若干單選按鈕對象JRadioButtonJRadioButton b1 = new b1 = new JRadioButton(JRadioButton(“x x”););JRadioButtonJRadioButton b2 = new b2 = new JRadioButton(JRadioButton(“y y”););將各單選按鈕添加到按鈕組中將各單選按鈕添加到按鈕組中bg.add(b1);bg.add(b1);bg.add(b2);bg.add(b2);將單選按鈕添加到其他容器中將單選按鈕添加到其他容器中容器對象容器對象
32、.add(b1);.add(b1);容器對象容器對象.add(b2);.add(b2);n注:按鈕組維持只有一個(gè)單選按鈕處于選擇狀態(tài)注:按鈕組維持只有一個(gè)單選按鈕處于選擇狀態(tài)單選按鈕(單選按鈕( JRadioButton )35步驟二:步驟二:添加單選按鈕(選擇性別)添加單選按鈕(選擇性別)JFrame f=new JFrame(); Container con=f.getContentPane();Jpanel pan=new JPanel(); JRadioButton male = new JRadioButton(男男, true);JRadioButton female = new
33、JRadioButton(女女);ButtonGroup group=new ButtonGroup();group.add(male);group.add(female);pan.add(male);pan.add(female); con.add(pan);f.setVisible(true);36n構(gòu)造方法構(gòu)造方法JCheckboxJCheckbox()()創(chuàng)建一個(gè)沒有標(biāo)簽的復(fù)選框。創(chuàng)建一個(gè)沒有標(biāo)簽的復(fù)選框。JCheckboxJCheckbox( Icon ( Icon iconicon) )創(chuàng)建一個(gè)有圖標(biāo)的復(fù)選框。創(chuàng)建一個(gè)有圖標(biāo)的復(fù)選框。JCheckbox(IconJCheckbox(
34、Icon icon , icon ,booleanboolean selesele ) ) 創(chuàng)建一個(gè)有圖標(biāo)創(chuàng)建一個(gè)有圖標(biāo)iconicon的復(fù)選的復(fù)選框,初始狀態(tài)為框,初始狀態(tài)為selsselsJCheckboxJCheckbox( String s)( String s)創(chuàng)建一個(gè)有標(biāo)簽的復(fù)選框。創(chuàng)建一個(gè)有標(biāo)簽的復(fù)選框。JCheckboxJCheckbox( String ( String s,booleans,boolean b) b)創(chuàng)建一個(gè)有標(biāo)簽的復(fù)選框,參數(shù)創(chuàng)建一個(gè)有標(biāo)簽的復(fù)選框,參數(shù)b b設(shè)設(shè)置初始狀態(tài)置初始狀態(tài)JCheckbox(StringJCheckbox(String strs
35、tr ,Icon icon ) ,Icon icon ) 創(chuàng)建一個(gè)有創(chuàng)建一個(gè)有strstr文字及圖標(biāo)文字及圖標(biāo)iconicon的復(fù)選框的復(fù)選框JCheckbox(StringJCheckbox(String str,Iconstr,Icon icon,booleanicon,boolean selesele) ) 創(chuàng)建一個(gè)有創(chuàng)建一個(gè)有strstr文文字及圖標(biāo)字及圖標(biāo)iconicon的復(fù)選框的復(fù)選框, ,初始狀態(tài)為初始狀態(tài)為selssels復(fù)選框(復(fù)選框(JCheckbox)37n常用方法常用方法isSelectedisSelected( () ):返回復(fù)選按鈕的狀態(tài),返回類型是:返回復(fù)選按鈕的
36、狀態(tài),返回類型是booleanboolean。如果返回。如果返回truetrue,則表示該按鈕處于選中狀,則表示該按鈕處于選中狀態(tài);否則處于未選中狀態(tài)。態(tài);否則處于未選中狀態(tài)。setSelectedsetSelected (Boolean state) (Boolean state):設(shè)置復(fù)選按鈕的狀:設(shè)置復(fù)選按鈕的狀態(tài)。態(tài)。復(fù)選框(復(fù)選框(JCheckbox)38步驟二:步驟二:添加復(fù)選框(選擇愛好添加復(fù)選框(選擇愛好,多項(xiàng)選擇)多項(xiàng)選擇)JFrame f=new JFrame(); Container con=f.getContentPane();Jpanel pan=new JPanel
37、(); Jlabel l_ah=new JLabel(愛好愛好);JCheckBox hobby=new JCheckBox(音樂音樂),new JCheckBox(足球足球),new JCheckBox(繪畫繪畫);pan.add(l_ah);pan.add(hobby0);pan.add(hobby1);pan.add(hobby2); con.add(pan);f.setVisible(true);39構(gòu)造方法構(gòu)造方法其它常用方法其它常用方法 void void addListSelectionListeneraddListSelectionListener( (););void voi
38、d setVisibleRowCount(intsetVisibleRowCount(int););void void setSelectionMode(intsetSelectionMode(int););/取值如下(在取值如下(在ListSelectionModelListSelectionModel中定義)中定義)SINGLE_SELECTIONSINGLE_SELECTIONSINGLE_INTERVAL_SELECTION SINGLE_INTERVAL_SELECTION MULTIPLE_INTERVAL_SELECTIONMULTIPLE_INTERVAL_SELECTION(
39、默認(rèn))(默認(rèn))intint getSelectedIndexgetSelectedIndex();();intint getSelectedIndicesgetSelectedIndices();();Object Object getSelectedValuegetSelectedValue();();Object Object getSelectedValuesgetSelectedValues();();列表框(列表框(JListJList)40步驟二:步驟二:添加列表框(選擇選修課程)添加列表框(選擇選修課程)JFrame f=new JFrame(); Container con=f
40、.getContentPane();Jpanel pan=new JPanel(); JLabel l_xk=new JLabel(選課選課);String coursesNames = 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)“,操作系統(tǒng)操作系統(tǒng)“,網(wǎng)絡(luò)原理網(wǎng)絡(luò)原理,Java程序設(shè)計(jì)程序設(shè)計(jì)“,分布式系統(tǒng)開發(fā)技術(shù)分布式系統(tǒng)開發(fā)技術(shù),計(jì)算機(jī)導(dǎo)論計(jì)算機(jī)導(dǎo)論“,密碼學(xué)密碼學(xué),計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理“,編譯原理編譯原理,圖形學(xué)圖形學(xué)”;course = new JList(coursesNames);pan.add(l_xk);pan.add(course);con.add(pan);f.setVisible(tru
41、e);41n構(gòu)造方法構(gòu)造方法String String ssss = = “redred”, ,”greengreen”, ,”blueblue”;JComboBoxJComboBox cb1 = new cb1 = new JComboBox(ssJComboBox(ss););JComboBoxJComboBox cb2 = new cb2 = new JComboBox(VectorJComboBox(Vector););n常用方法常用方法1.1.addItemaddItem() () 添加一個(gè)項(xiàng)目到添加一個(gè)項(xiàng)目到 JComboBoxJComboBox. . 2.2.get/get/se
42、tSelectedIndexsetSelectedIndex()()獲取獲取/ /設(shè)置設(shè)置 JComboBoxJComboBox 中選中項(xiàng)目的索引中選中項(xiàng)目的索引3.3.get/get/setSelectedItemsetSelectedItem()()獲取獲取/ /設(shè)置選中的對象。設(shè)置選中的對象。4.4.removeAllItemsremoveAllItems()()從從 JComboBoxJComboBox 刪除所有對象。刪除所有對象。5.5.removeItemremoveItem()()從從 JComboBoxJComboBox 刪除特定對象。刪除特定對象。6.6.setEditabl
43、esetEditable把一個(gè)組合框設(shè)置為可編輯的。把一個(gè)組合框設(shè)置為可編輯的。注意編輯只會影響當(dāng)前項(xiàng),它不會改變列表的內(nèi)容。注意編輯只會影響當(dāng)前項(xiàng),它不會改變列表的內(nèi)容。( JComboBox )42步驟二:步驟二:添加下拉列表(選擇院系)添加下拉列表(選擇院系)JFrame f=new JFrame(); Container con=f.getContentPane();Jpanel pan=new JPanel(); JLabel l_yx=new JLabel(院系院系);pan.add(l_yx);String departmentNames = 計(jì)算機(jī)科學(xué)與技術(shù)系計(jì)算機(jī)科學(xué)與技術(shù)系
44、,電子信息與技術(shù)系電子信息與技術(shù)系,計(jì)算機(jī)工程系計(jì)算機(jī)工程系”;JComboBox department = new JComboBox(departmentNames);department.setEditable(false);pan.add(department); con.add(pan);f.setVisible(true);43n構(gòu)造方法(類似于構(gòu)造方法(類似于JTextField)n常用方法常用方法void void addActionListener(ActionListeneraddActionListener(ActionListener););char char getP
45、asswordgetPassword();();void void setEchoChar(charsetEchoChar(char););char char getEchoChargetEchoChar();();( JPasswordField )44步驟二:步驟二:添加密碼(密碼輸入顯示添加密碼(密碼輸入顯示“*”)JFrame f=new JFrame(); Container con=f.getContentPane();Jpanel pan=new JPanel(); JLabel l_ma=new JLabel(密碼密碼);pan.add(l_ma);password=new J
46、PasswordField(20);password.setEchoChar(*);pan.add(password); con.add(pan);f.setVisible(true);45n構(gòu)造方法構(gòu)造方法JSliderJSlider slider = new slider = new JSlider(JSlider.HORIZONTAL,0,100,10); JSlider(JSlider.HORIZONTAL,0,100,10);n常用方法常用方法void void addChangeListener(ChangeListeneraddChangeListener(ChangeListe
47、ner););void void setValue(intsetValue(int););intint getValuegetValue();();void void setMajorTickSpacing(intsetMajorTickSpacing(int););void void setMinorTickSpacing(intsetMinorTickSpacing(int););void void setPaintTicks(booleansetPaintTicks(boolean); /false); /falsevoid void setPaintLabels(booleansetP
48、aintLabels(boolean); /false); /falsevoid void setPaintTrack(booleansetPaintTrack(boolean); /true); /truevoid void setSnapToTicks(booleansetSnapToTicks(boolean); /false); /false( JSlider )46步驟二:步驟二:添加加分選項(xiàng)(加分的選項(xiàng)采用滑動(dòng)條實(shí)現(xiàn))添加加分選項(xiàng)(加分的選項(xiàng)采用滑動(dòng)條實(shí)現(xiàn))JFrame f=new JFrame(); Container con=f.getContentPane();Jpanel
49、pan=new JPanel(); JLabel l_jf=new JLabel(加分加分); pan.add(l_jf);addition = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);addition.setMajorTickSpacing(10);addition.setMinorTickSpacing(5);addition.setPaintTicks(true);addition.setPaintLabels(true);addition.setSnapToTicks(true);pan.add(addition); con.add(pa
50、n);f.setVisible(true);47n構(gòu)造方法構(gòu)造方法 JProgressBar(int,int,intJProgressBar(int,int,int);); JProgressBarJProgressBar pbpb = new = new JProgressBarJProgressBar( ( JProgressBarJProgressBar. . HORIZONTAL, 0,100);HORIZONTAL, 0,100);n常用方法常用方法void void addChangeListener(ChangeListeneraddChangeListener(ChangeLi
51、stener););void void setValue(intsetValue(int); /); /設(shè)置當(dāng)前值設(shè)置當(dāng)前值void void setString(StringsetString(String););/設(shè)置顯示的字符串設(shè)置顯示的字符串void void setStringPainted(booleansetStringPainted(boolean););/設(shè)置是否顯示字符串,默認(rèn)為設(shè)置是否顯示字符串,默認(rèn)為falsefalsevoid void setBorderPainted(booleansetBorderPainted(boolean););/設(shè)置是否顯示邊框,默認(rèn)為設(shè)
52、置是否顯示邊框,默認(rèn)為truetrue( JProgressBar )48步驟二:步驟二:添加進(jìn)度條添加進(jìn)度條JFrame f=new JFrame(); Container con=f.getContentPane();Jpanel pan=new JPanel(); JProgressBar progbar = new JProgressBar(JProgressBar.HORIZONTAL,0,100);progbar.setStringPainted(true);con.add(pan);f.setVisible(true);49n構(gòu)造方法構(gòu)造方法JFileChooserJFileCh
53、ooser fc1,fc2; / fc1,fc2; /聲明兩個(gè)對象變量聲明兩個(gè)對象變量fc1 = new fc1 = new JFileChooserJFileChooser();/();/使用系統(tǒng)默認(rèn)目錄使用系統(tǒng)默認(rèn)目錄fc2 = new fc2 = new JFileChooser(JFileChooser(“d d:java:java”););n顯示方法顯示方法intint showOpenDialog(ComponentshowOpenDialog(Component););intint showSaveDialog(ComponentshowSaveDialog(Component)
54、;);/分別用于顯示標(biāo)準(zhǔn)的打開和保存對話框分別用于顯示標(biāo)準(zhǔn)的打開和保存對話框/參數(shù)參數(shù)ComponentComponent指定對話框依附的父組件指定對話框依附的父組件/返回值:返回值:APPROVE_OPTIONAPPROVE_OPTION選擇了確認(rèn)選擇了確認(rèn) CANCEL_OPTIONCANCEL_OPTION選擇了取消選擇了取消 ERROR_OPTIONERROR_OPTION出現(xiàn)了錯(cuò)誤出現(xiàn)了錯(cuò)誤( JFileChooser )501.1.其他常用方法其他常用方法void void setCurrentDirectory(FilesetCurrentDirectory(File););vo
55、id void setMultiSelectionEnabled(booleansetMultiSelectionEnabled(boolean););File File getSelectedFilegetSelectedFile();();File File getSelectedFilesgetSelectedFiles();();File File getCurrentDirectorygetCurrentDirectory();();String String getName(FilegetName(File););/取得文件取得文件/ /目錄名稱,不含路徑,可用目錄名稱,不含路徑,
56、可用FileFile類的類的getAbsolutePathgetAbsolutePath()()方法獲取完整路徑方法獲取完整路徑void void setFileSelectionMode(intsetFileSelectionMode(int););/FILES_ONLY /FILES_ONLY 只能選擇文件只能選擇文件( (默認(rèn)默認(rèn)) ) DIRECTORIES_ONLY DIRECTORIES_ONLY 只能選擇目錄只能選擇目錄 FILES_AND_DIRECTORIES FILES_AND_DIRECTORIES 文件和目錄都可選文件和目錄都可選void void setFileFil
57、ter(FileFiltersetFileFilter(FileFilter););51n顯示方法顯示方法使用使用JColorChooserJColorChooser提供的類方法提供的類方法showDialogshowDialogstatic Color static Color showDialogshowDialog( ( Component, / Component, /父組件父組件 String, /String, /標(biāo)題標(biāo)題 Color /Color /初始顏色值初始顏色值 ););/返回值:新返回值:新選擇的顏色值選擇的顏色值ColorColorn示例示例Color c = Col
58、or c = JColorChooser.showDialogJColorChooser.showDialog (this, (this,”請選擇顏色請選擇顏色”, ,Color.redColor.red););/得到顏色對象得到顏色對象c c后,即可在需要的地方使用后,即可在需要的地方使用(JColorChooser)52nConfirmConfirm對話框?qū)υ捒騣ntint showConfirmDialog(Component,ObjectshowConfirmDialog(Component,Object););/顯示含有顯示含有 YesYes、NoNo、Cancel Cancel 按
59、鈕的確認(rèn)框按鈕的確認(rèn)框/參數(shù):父組件,顯示信息參數(shù):父組件,顯示信息/返回值:返回值: YES_OPTIONYES_OPTION是是 NO_OPTIONNO_OPTION否否 CANCEL_OPTIONCANCEL_OPTION撤銷撤銷 OK_OPTIONOK_OPTION確定確定 CLOSED_OPTIONCLOSED_OPTION關(guān)閉關(guān)閉還有其他形式的類方法,請參閱幫助文檔還有其他形式的類方法,請參閱幫助文檔框(框( JOptionPane)53nInputInput對話框?qū)υ捒騍tring String showshowInputDialog(Component,ObjectInputD
60、ialog(Component,Object););/參數(shù):父組件,顯示信息參數(shù):父組件,顯示信息/返回值:返回值: 選擇確認(rèn)后返回選擇確認(rèn)后返回 輸入的字符串輸入的字符串 選擇取消或關(guān)閉后返回選擇取消或關(guān)閉后返回 nullnull還有其他形式的類方法,請參閱幫助文檔還有其他形式的類方法,請參閱幫助文檔框(框( JOptionPane)54nMessageMessage對話框?qū)υ捒騰oid void showshowMessageDialog(Component,ObjectMessageDialog(Component,Object););/參數(shù):父組件,顯示信息參數(shù):父組件,顯示信息/沒有
61、返回值,只是用來顯示一些信息沒有返回值,只是用來顯示一些信息還有其他形式的類方法,請參閱幫助文檔還有其他形式的類方法,請參閱幫助文檔框(框( JOptionPane)55nOptionOption對話框?qū)υ捒騣ntint showOptionDialogshowOptionDialog( ( Component, / Component, /父組件父組件 Object, /Object, /顯示信息顯示信息 String, /String, /標(biāo)題標(biāo)題 intint, /, /標(biāo)準(zhǔn)選項(xiàng)按鈕組類型標(biāo)準(zhǔn)選項(xiàng)按鈕組類型 intint, /, /標(biāo)準(zhǔn)信息圖標(biāo)類型標(biāo)準(zhǔn)信息圖標(biāo)類型 Icon, /Icon
62、, /自定義信息圖標(biāo)自定義信息圖標(biāo) Object, /Object, /自定義選項(xiàng)按鈕組自定義選項(xiàng)按鈕組 Object /Object /自定義默認(rèn)的選項(xiàng)按鈕自定義默認(rèn)的選項(xiàng)按鈕 ););/該方法提供了豐富且復(fù)雜的表達(dá)形式,請參閱幫助該方法提供了豐富且復(fù)雜的表達(dá)形式,請參閱幫助文檔文檔注:使用這些標(biāo)準(zhǔn)對話框,可以方便實(shí)現(xiàn)某些功能注:使用這些標(biāo)準(zhǔn)對話框,可以方便實(shí)現(xiàn)某些功能框(框( JOptionPane)56n構(gòu)造方法構(gòu)造方法JSpinnerJSpinner spinner = new spinner = new JSpinnerJSpinner();();n常用方法常用方法void void
63、 addChangeListener(ChangeListeneraddChangeListener(ChangeListener););void void setValue(ObjectsetValue(Object););Object Object getValuegetValue();();Object Object getNextValuegetNextValue();();Object Object getPreviousValuegetPreviousValue();();57JFrame f=new JFrame(); Container con=f.getContentPane
64、();Jpanel pan=new JPanel(); JLabel lb=new JLabel(年齡年齡);JSpinner jsp=new JSpinner();jsp.setValue(new Integer(20);pan.add(lb);pan.add(jsp); con.add(pan);f.setVisible(true);步驟二:添加年齡微調(diào)器步驟二:添加年齡微調(diào)器58n構(gòu)造方法構(gòu)造方法Timer(intTimer(int, , ActionListenerActionListener););Timer Timer timertimer = new Timer(1000,thi
65、s); = new Timer(1000,this);n常用方法常用方法void start();void start();void stop();void stop();void restart();void restart();void void setDelay(intsetDelay(int););void void setRepeats(booleansetRepeats(boolean););booleanboolean isRunningisRunning();();591.創(chuàng)建邊框(使用創(chuàng)建邊框(使用BorderFactory類的類方法)類的類方法)Border border1
66、 = /Border border1 = /創(chuàng)建一個(gè)具有指定顏色和寬度的線邊框創(chuàng)建一個(gè)具有指定顏色和寬度的線邊框BorderFactory.createLineBorder(Color,intBorderFactory.createLineBorder(Color,int););Border border2 =Border border2 = BorderFactory.createTitledBorder(StringBorderFactory.createTitledBorder(String);); 創(chuàng)建一個(gè)新標(biāo)題邊框,采創(chuàng)建一個(gè)新標(biāo)題邊框,采用默認(rèn)設(shè)置,并指定了標(biāo)題文本。用默認(rèn)設(shè)置,并指定了標(biāo)題文本。Border border3 = Border border3 = BorderFactoryBorderFactory. . createLoweredBevelBordercreateLoweredBevelBorder();();創(chuàng)建一個(gè)具有凹入斜面邊緣的邊框創(chuàng)建一個(gè)具有凹入斜面邊緣的邊框Border border4 =Border border4 = BorderFacto
- 溫馨提示:
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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案