資源描述:
《Java Swing中處理各組件事件的一般步驟》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、JavaSwing中處理各組件事件的一般步驟是:1.??新建一個組件(如JButton)。2.??將該組件添加到相應的面板(如JPanel)。3.??注冊監(jiān)聽器以監(jiān)聽事件源產生的事件(如通過ActionListener來響應用戶點擊按鈕)。4.??定義處理事件的方法(如在ActionListener中的actionPerformed中定義相應方法)。????以上步驟我們可以用多種方法實現(xiàn)。但人們通常用二種方法。第一種方法是只利用一個監(jiān)聽器以及多個if語句來決定是哪個組件產生的事件;第二種方法是使用多個內部類來
2、響應不同組件產生的各種事件,其具體實現(xiàn)又分兩種方式,一種是匿名內部類,一種是一般內部類。?????為了說明如何使用上述三種方法實現(xiàn)事件的處理方法,我們建立一個簡單的應用程序。該程序界面有兩個按鈕,當用戶點擊相應的按鈕,就會彈出一個對話框顯示相應的內容。通過這個簡單程序,你可以實現(xiàn)自己更多、更復雜的用戶界面程序。????首先,我們利用單個監(jiān)聽器來實現(xiàn)該程序。我們定義一個名為Simple1的類來包括所有代碼。所有的用戶行為(如點擊按鈕)由一個監(jiān)聽器SimpleListenner中的actionPerformed方
3、法來處理。以下是代碼:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassSimple1{????privatestaticJFrameframe;???//定義為靜態(tài)變量以便main使用????privatestaticJPanelmyPanel;//該面板用來放置按鈕組件????privateJButtonbutton1;???????//這里定義按鈕組件?????????privateJButtonbutton2;
4、???????//以便讓ActionListener使用?????????publicSimple1()???????????????//構造器,建立圖形界面????{????????//新建面板????????myPanel=newJPanel();????????//新建按鈕????????button1=newJButton("按鈕1");??//新建按鈕1????????button2=newJButton("按鈕2");????????SimpleListenerourListener=newSim
5、pleListener();//建立一個actionlistener讓兩個按鈕共享????????button1.addActionListener(ourListener);????????button2.addActionListener(ourListener);????????myPanel.add(button1);//添加按鈕到面板?????7???myPanel.add(button2);????}????privateclassSimpleListenerimplementsActionLis
6、tener????{???????????publicvoidactionPerformed(ActionEvente)????????{????????????//利用getActionCommand獲得按鈕名稱????????????//也可以利用getSource()來實現(xiàn)????????????//if(e.getSource()==button1)????????????StringbuttonName=e.getActionCommand();????????????if(buttonName.e
7、quals("按鈕1"))????????????????JOptionPane.showMessageDialog(frame,????????????????????????????????????????????"按鈕1被點擊");????????????elseif(buttonName.equals("按鈕2"))????????????????JOptionPane.showMessageDialog(frame,??????????????????????????????????????????
8、??"按鈕2被點擊");????????????else????????????????JOptionPane.showMessageDialog(frame,????????????????????????????????????????????"Unknownevent");????????}????}????publicstaticvoidmain(Strings[])????{???????