按鈕事件處理(3)

  在進行gui編程時,我們最常使用的控件時按鈕,在java中JButton類代表了按鈕。它的類層次結構圖是:

java.lang.Object|_ java.awt.Component|_java.awt.Container|_javax.swing.JComponent|_javax.swing.AbstractButton|_javax.swing.JButton

  我們使用按鈕的目的不是為了好看,而是點擊它,產生某些我們想要的結果,即事件處理。在c語言中,我們需要不斷檢查事件隊列,然后依次處理。但是這種方式編寫的程序可讀性很差,在java中采用了事件監聽器,它對每個需要控制的控件,都綁定一個監聽器,綁定的監聽器負責進行處理相關事宜。流程就是控件產生了事件,然后傳遞給了監聽器,監聽器接收到事件,然后進行處理。

  java將控件產生的事件的所有相關信息都封裝到一個事件對象,這個事件對象都派生于java.util.EventObject,按鈕對應的事件對象是ActionEvent。每個監聽器都必須實現一個叫ActionListener的接口,實現其中的方法actionPerformed(ActionEvent e)。

  

public class test()
{public static void main(String[] args){... ...javax.swing.JButton button = new javax.swing.JButton();... ...TestAction action = new TestAction();button.addActionListener(action);}class TestAction implements java.awt.event.ActionListener{public void actionPerformed(java.awt.event.ActionEvent e){Object obj = e.getSource();if(obj == button)test(e);}}void test(java.awt.event.ActionEvent event){... ...} 
}

  一個監聽器可以同時被多個控件使用,除了上文的判斷某個控件的方法之外,還可以使用setActionCommand(String name)方法將這個按鈕產生的事件命名,然后在actionPerformed方法中使用e.getActionCommand().equals()方法判別。

轉載于:https://www.cnblogs.com/canyudeguang/p/7078570.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370179.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370179.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370179.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux下I2C驅動發送IO時序,Linux I2C 驅動閱讀的碰到的一些網上沒有提到的東西

# re: Linux I2C 驅動閱讀的碰到的一些網上沒有提到的東西 回復 更多評論2009-04-11 13:39 by 初學都樓主,你好。我看了你那篇《Linux I2C核心、總線與設備驅動[轉]》,讓我明白了不少,不過我還是有些不明白的地方,想請教一下。我…

Java內存模型和優化

總覽 許多多線程代碼開發人員都熟悉這樣的想法,即不同的線程可以對持有的值有不同的看法,這不是唯一的原因,即如果線程不安全,它可能不會看到更改。 JIT本身可以發揮作用。 為什么不同的線程看到不同的值? 當您有多個…

C_數組詳解

數組: 一 一維數組 1.1 一維數組的定義: 類型符 數組名[常量表達式]; int a[10]; 說明: 1.數組的命名規則遵循標識符命名規則。 2.定義時需要指定元素的個數。方括號里的常量表達式表示元素的個數。 3.常量表達式中不能包含變量;如:int a[n];…

CSS節選——選擇器

CSS,cascading style sheet,層疊樣式表,請留意層疊概念。 css3為了區分偽類和偽元素,偽元素采用雙冒號寫法。 常見偽類——:hover,:link,:active,:target,:not(),:focus。 常見偽元素——::first-letter,::first-line,::before…

python游戲循環設置_Pygame:游戲循環前的初始菜單

我正在制作一個this game的版本,并嘗試將起始菜單設置為:我的計劃是先做surface.fill(overlaycolor),然后將這個圖像blitting到屏幕上。在一個while循環中。之后,在用戶想玩(另一個問題除外)之后,我們將進入另一個whil…

vue.js基礎知識篇(7):表單校驗詳解

目錄 網盤 第12章:表單校驗 1.npm安裝vue-validator $ npm install vue-validator 代碼示例: var Vuerequire("vue"); var VueValidatorrequire("vue-validator"); Vue.use(VueValidator); 2.直接使用script標簽引入vue.js 要下載vue-validator&#xff0c…

修改linux綁定的域名,手工修改linux系統下DA面板綁定的域名

舉例說明手工修改DA面板下虛擬主機ryan綁定的域名,只需要 vi /usr/local/directadmin/data/users/ryan/httpd.conf代碼如下:# Auto generated apache config file by DirectAdmin version 1.46.3# Modifying this file is not recommended as any change…

在JUnit測試中使用Builder模式

這并不是要成為技術含量很高的職位。 這篇文章的目的是為您提供一些指導,以使您的JUnit測試生活更加輕松,使您能夠在幾分鐘內編寫復雜的測試場景,并具有易于閱讀的測試優勢。 單元測試中有兩個主要部分,需要編寫許多引導程序代碼&…

SQL數據庫中臨時表、臨時變量和WITH AS關鍵詞創建“臨時表”的區別

原文鏈接:https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL數據庫中數據處理時,有時候需要建立臨時表,將查詢后的結果集放到臨時表中,然后在針對這個數據進行操作。 創建“臨時表”(邏輯上的臨時表&…

python 三維繪圖庫_Python第三方庫matplotlib(2D繪圖庫)入門與進階

Matplotlib一 簡介:Matplotlib是一個Python 2D繪圖庫,它可以在各種平臺上以各種硬拷貝格式和交互式環境生成出具有出版品質的圖形。 Matplotlib可用于Python腳本,Python和IPython shell,Jupyter筆記本,Web應用程序服務…

zbb20170626 myeclipse 2017 ci 構建 spring hibernate struts jar

轉載于:https://www.cnblogs.com/super-admin/p/7081209.html

linux處理機調度實驗報告,模擬Linux操作系統下處理機調度實驗報告

在采用多道系統的設計程序中,往往有若干進程同時處于就緒狀態。當就緒狀態進程數大于處理機數時,就必須按照某種策略來決定哪些進程優先占用處理機。本實驗模擬在單處理機情況下處理機調度處理機調度一、實驗目的:1、了解Linux下Emacs編輯器的使用方法,掌…

Java線程:保留的內存分析

本文將為您提供一個教程,使您可以確定活動應用程序Java線程保留Java堆空間的數量和位置。 將提供來自Oracle Weblogic 10.0生產環境的真實案例研究,以使您更好地理解分析過程。 我們還將嘗試證明過多的垃圾回收或Java堆空間的內存占用問題通常不是由真正…

軟件測試白皮書-等價類

設有一個檔案管理系統,要求用戶輸入以年月表示的日期。假設日期限定在1990年1月~2049年12月,并規定日期由6位數字字符組成,前4位表示年,后2位表示月。現用等價類劃分法設計測試用例,來測試程序的"日期檢查功能&qu…

深入css布局 (1) — 盒模型 元素分類

深入css布局(1)—— 盒模型 & 元素分類 “ 在css知識體系中,除了css選擇器,樣式屬性等基礎知識外,css布局相關的知識才是css比較核心和重要的點。今天我們來深入學習一下css布局相關的知識。” 首先來列下大綱 盒模…

批改網禁止粘貼怎么破_教育部對家長批改作業表態了,明令禁止!你怎么看?...

互聯網的發展,的確方便了現代人生活。視頻電話、出去買東西你都不用帶錢帶卡,手機一掃就可以完成支付。很多中小學的家長都會建一個家長群,方便老師和家長的溝通。這個群可以說是家長和學校的橋梁和紐帶,家長們為了支持老師的工作…

電子科大專科c語言作業1,電子科大15春《C語言(專科)》在線作業試卷.docx

電子科大 15 春《 C 語言(專科)》在線作業一、單選題(共20 道試題,共100 分。)1.對于 int*p;inta[];pa;的合法運算 ()a;pa;p; 相當于 a;p; 相當于 a[1];若 p 中的地址為 100 則 p; 運算后,則其值為 100-----------------選擇: C已知 intb; 則…

MapReduce算法–順序反轉

這篇文章是介紹MapReduce算法的系列文章的另一部分,該書在使用MapReduce進行數據密集型文本處理中找到。 先前的文章是Local Aggregation , Local Aggregation PartII和創建共現矩陣 。 這次我們將討論階數反轉模式。 順序反轉模式利用的MapReduce來計算…

xss防御

http://blog.csdn.net/ghsau/article/details/17027893轉載于:https://www.cnblogs.com/jiangjing/p/8076216.html

移動端頁面字體在微信被放大,導致排版錯亂

在開發微信頁面的時候,之前一直沒有測出這個問題。直到某天領導的手機出現了排版錯位的問題,拿著手機質問我的工作態度。 Google了一下發現原來微信調整了字體大小會放大網頁的字體,導致排版混亂。通過設置可以禁止網頁字體被放大&#xff1a…