Java資料:Swing中的事件處理詳細資料

來源:互聯網
上載者:User

監聽器:ActionListener

方 法:actionPerformed

事 件:ActionEvent

● String getActionCommand()

actioncommand是控制項內部的一個字串,用於標識控制項的狀態。

此函數可以取得控制項的狀態,從而決定到底該做什麼。

● int getModifiers()

取得“產生此事件時,使用者同步選取的按鍵組合”

● long getWhen()

取得“產生此事件時的時間戳記”

事件產生原因:點擊按鈕,在列表框中選擇內容,在文字框中點斷行符號,計時器到期

------------------------------------------------------------------

監聽器:AdjustmentListener

方 法:adjustmentValueChanged

事 件:AdjustmentEvent

● Adjustable getAdjustable()

adjustable是一個介面,各種捲軸都實現了這個介面。

● int getAdjustmentType()

取得滾動類型,共有UNIT_INCREMENT,UNIT_DECREMENT,BLOCK_INCREMENT,BLOCK_DECREMENT,TRACK共5種類型

● int getValue()

取得滾動滑塊的當前值

事件產生原因:捲軸的滾動

------------------------------------------------------------------

監聽器:ItemListener

方 法:itemStateChanged

事 件:ItemEvent

● Objedt getItem()

取得被選中的元素。注意,傳回值是Object,還應該進行強制類型轉換。

● ItemSelectable getItemSelectable()

ItemSelectable是一個介面,代表那些包含了n個可供選擇的子項目的對象。此方法返回產生此事件的對象。此方法的作用主要在於,如果一個列表框是允許多選的,那麼上面的方法就不好用了,應該用此方法得到列表對象,再取得被選中的多個元素。

● int getStateChange()

取得選擇的狀態,是SELECTED還是DESELECTED

事件產生原因:各種按鈕的點擊,列表框的選擇

-----------------------------------------------------------------

監聽器:FocusListener

方 法:focusGained、focusLost

事 件:FocusEvent

● Component getOppositeComponent()

得到“參與焦點變換的”另一個對象。如果是焦點取得事件,則返回之前擁有焦點的對象;如果是焦點失去事件,則返回得到焦點的對象。若焦點轉移到另外一個應用程式,返回null

● boolean isTemporary()

焦點是臨時性轉移還是永久轉移。臨時性轉移:用滑鼠拖動視窗或者視窗變為非啟用狀態。其他為永久性轉移。

事件產生原因:各種組件的焦點變化

------------------------------------------------------------------

監聽器:KeyListener

方 法:keyPressed、keyReleased、keyTyped

事 件:KeyEvent

● char getKeyChar()

此方法只在keytyped中有效,返回按下的字元。比如按下shift+a,返回'A'

● int getKeyCode()

取得鍵盤上按鍵的整數編碼。請注意,是鍵盤上的按鍵,比如F1,Ctrl,Home鍵等等,都有相應編碼。不支援按鍵組合,也就是說“Shift+a”和“a”返回同樣的內容,都是小寫a的ASCII碼。但是大鍵盤的數字鍵和小鍵盤的數字鍵返回內容不同。

● static String getKeyModifiersText(int modifiers)

將掩碼轉化為字串,比如“Ctrl”,“Ctrl+Shift”等。注意它是static方法

● static String getKeyText(int keyCode)

返回keyCode代表的按鈕的名字,比如"Home","F1"等。注意它是statci方法

事件產生原因:在各種組件上敲擊鍵盤

----------------------------------------------------------------

監聽器:MouseListener

方 法:mouseClicked、mousePressed、mouseReleased

mouseEntered、mouseExited

事 件:MouseEvent

● Point getLocationOnScreen()

返回滑鼠相對於顯示螢幕的絕對座標(java 1.6版提供)

● int getXOnScreen()

返回滑鼠相對於顯示螢幕的X的絕對座標(java 1.6版提供)

● int getYOnScreen()

返回滑鼠相對於顯示螢幕的Y的絕對座標(java 1.6版提供)

● Point getPoint()

返回滑鼠相對於組件的絕對座標

● int getX()

返回滑鼠相對於組件的X的絕對座標

● int getY()

返回滑鼠相對於組件的Y的絕對座標

● void translatePoint(int x, int y)

給滑鼠的做用點加上一個位移量。比如2個參數分別是10, 20,你要用滑鼠畫直線,當你滑鼠指向100,100開始畫,實際上的線是畫在110,120處

● int getClickCount()

產生此事件時滑鼠共點擊了多少下(單擊、雙擊、三擊……)

● int getButton()

產生此事件時,滑鼠的哪個鍵被點擊了:NOBUTTON, BUTTON1, BUTTON2 或者 BUTTON3

● boolean isPopupTrigger()

是否能夠觸發一個彈出式菜單。由於各平台觸發彈出式菜單的情況不一樣,因此應該在mousePressed 和 mouseReleased中都檢測一下

事件產生原因:在任何組件上點擊滑鼠、將游標移動進來或出去

---------------------------------------------------------------------

監聽器:MouseMotionListener

方 法:mouseDragged、mouseMoved

事 件:MouseEvent

同上!

事件產生原因:在任何組件上移動滑鼠

---------------------------------------------------------------------

監聽器:MouseWheelListener

方 法:mouseWheelMoved

事 件:MouseWheelEvent

● int getScrollType()

滾動的類型,是按塊滾動WHEEL_BLOCK_SCROLL還是按單位滾動WHEEL_UNIT_SCROLL

● int getScrollAmount()

返回為相應此事件應該滾動的單位元。此方法有效前提是按單位滾動。

● int getWheelRotation()

滑鼠滾輪滾動過程中”哢嚓“聲的數目。向上滾為負值,向下滾為正值

事件產生原因:在任何組件上滾動滑鼠中鍵

--------------------------------------------------------------------

監聽器:WindowListener

方 法:windowOpened、windowClosing、windowClosed、windowIconified

windowDeiconified、windowActivated、windowDeactivated

事 件:WindowEvent

● Window getWindow()

返回傳生此事件的window對象

● Window getOppositeWindow()

若發生了焦點轉移,返回另一個參與此事件的window對象,或者null

● int getOldState()

視窗變化前的狀態:NORMAL、ICONIFIED、MAXIMIZED_BOTH

● int getNewState()

視窗變化後的狀態

事件產生原因:視窗發生變化

----------------------------------------------------------------------

監聽器:WindowFocusListener

方 法:windowGainedFocus、windowLostFocus

事 件:WindowEvent

同上!

事件產生原因:視窗得到或失去焦點

------------------------------------------------------------------------

監聽器:WindowStateListener

方 法:WindowStateChanged

事 件:WindowEvent

同上!

事件產生原因:視窗狀態改變

-------------------------------------------------------------------------



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。