欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java處理按鈕點擊事件的方法

 更新時間:2017年04月17日 10:11:14   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava處理按鈕點擊事件的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

不同的事件源可以產(chǎn)生不同類別的事件。例如,按鈕可以發(fā)送一個ActionEvent對象,而窗口可以發(fā)送WindowEvent對象。

AWT時間處理機制的概要:

1. 監(jiān)聽器對象是一個實現(xiàn)了特定監(jiān)聽器接口(listener interface)的類的實例。

2. 事件源是一個能夠注冊監(jiān)聽器對象并發(fā)送事件對象的對象。

3. 當事件發(fā)生時,事件源將事件對象傳遞給所有注冊的監(jiān)聽器。

4. 監(jiān)聽器對象將利用事件對象中的信息決定如何對事件做出響應(yīng)。

下面是監(jiān)聽器的一個示例:

ActionListener listener = ...;
JButton button = new JButton("OK");
button.addActionListener(listener);

現(xiàn)在,只要按鈕產(chǎn)生了一個“動作事件”,listener對象就會得到通告。對于按鈕來說,正像我們想到的,動作事件就是點擊按鈕。

為了實現(xiàn)ActionListener接口,監(jiān)聽器類必須有一個被稱為actionPerformed的方法,該方法接收一個ActionEvent對象參數(shù)。

class MyListener implements ActionListener
{
 ...;
 public void actionPerformed(ActionEvent event)
 {
   //reaction to button click goes here
 }
}

只要用戶點擊了按鈕,JButton對象就會創(chuàng)建一個ActionEvent對象,然后調(diào)用listener.actionPerformed(event)傳遞事件對象??梢詫⒍鄠€監(jiān)聽器對象添加到一個像按鈕這樣的事件源中。這樣一來,只要用戶點擊按鈕,按鈕就會調(diào)用所有監(jiān)聽器的actionPerformed方法。

實例:處理按鈕點擊事件

為了加深對事件委托模型的理解,下面以一個響應(yīng)按鈕點擊事件的簡單示例來說明所需要知道的細節(jié)。在這個示例中,想要在一個面板中放置三個按鈕,添加三個監(jiān)聽器對象用來作為按鈕的動作監(jiān)聽器。

在這個情況下,只要用戶點擊面板上的任何一個按鈕,相關(guān)的監(jiān)聽器對象就會接收到一個ActionEvent對象,它表示有個按鈕被點擊了。在示例程序中,監(jiān)聽器對象將改變面板的背景顏色。

在演示如何監(jiān)聽按鈕點擊事件之前,首先需要講解一下如何創(chuàng)建按鈕以及如何將他們添加到面板中。

可以通過在按鈕構(gòu)造器中指定一個標簽字符串、一個圖標或兩項都指定來創(chuàng)建一個按鈕。下面是兩個示例:

JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton(new ImageIcon("blue-ball.gif"));

將按鈕添加到面板中需要調(diào)用add方法:

JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
JButton redButton = new JButton("Red");

buttonPanel.add(yellowButton);
buttonPanel.add(blueButton);
buttonPanel.add(redButton);

至此,知道了如何將按鈕添加到面板上,接下來需要增加讓面板監(jiān)聽這些按鈕的代碼。這需要一個實現(xiàn)了ActionListener接口的類。如前所述,應(yīng)該包含一個actionPerformed方法,其簽名為:

public void actionPerformed(ActionEvent event)

當按鈕被點擊時,希望將面板的背景顏色設(shè)置為指定的顏色。這個顏色存儲在監(jiān)聽器類中:

class ColorAction implements ActionListener
{
  public ColorAction(Color c)
  {
   backgroundColor = c;
  }
  public void actionPerformed(actionEvent event)
  {
   //set panel background color
   }
   private Color backgroundColor;
}

然后,為每種顏色構(gòu)造一個對象,并將這些對象設(shè)置為按鈕監(jiān)聽器。

ColorAction yelloAction = new ColorAction(Color.YELLOW);
ColorAction blueAction = new ColorAction(Color.BLUE);
ColorAction redAction = new ColorAction(Color.RED);

yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);

例如,如果一個用戶在標有“Yellow”的按鈕上點擊了一下,yellowAction對象的actionPerformed方法就會被調(diào)用。這個對象的backgroundColor實例域被設(shè)置為Color.YELLOW,現(xiàn)在就將面板的背景顏色設(shè)置為黃色。

這里還有一個需要考慮的問題。ColorAction對象不能訪問buttonpanel變量??梢圆捎脙煞N方式解決這個問題。一個是將面板存儲在ColorAction對象中,并在ColorAction的構(gòu)造器中設(shè)置它;另一個是將ColorAction作為ButtonPanel類的內(nèi)部類,如此,它的方法就自動地擁有訪問外部面板的權(quán)限了。

下面說明一下如何將ColorAction類放在ButtonFrame類內(nèi)。

class ButtonFrame extends JFrame
{
 ...
 private class ColorAction implents ActionListener
 {
  ...
  public void actionPerformed(ActionEvent event)
  {
    buttonPanel.setBackground(backgroundColor);
  }
  private Color backgroundColor;
  }
  private Jpanel buttonPanel; 
}

以上這篇java處理按鈕點擊事件的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決MyEclipse6.5無法啟動,一直停留剛開始啟動界面的詳解

    解決MyEclipse6.5無法啟動,一直停留剛開始啟動界面的詳解

    本篇文章是對解決MyEclipse6.5無法啟動,一直停留剛開始啟動界面的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Java實現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫

    Java實現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了Java實現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 一文教會你用mybatis查詢數(shù)據(jù)庫數(shù)據(jù)

    一文教會你用mybatis查詢數(shù)據(jù)庫數(shù)據(jù)

    MyBatis本身是一個數(shù)據(jù)庫連接框架,可以認為是JDBC的升級版,下面這篇文章主要給大家介紹了關(guān)于mybatis查詢數(shù)據(jù)庫數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 詳解Java中Iterable與Iterator用法

    詳解Java中Iterable與Iterator用法

    在本文中小編給大家分享了關(guān)于Java中Iterable與Iterator的用法知識點內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2018-10-10
  • Springboot公共字段填充及ThreadLocal模塊改進方案

    Springboot公共字段填充及ThreadLocal模塊改進方案

    這篇文章主要為大家介紹了Springboot公共字段填充及ThreadLocal模塊改進方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Java單測void類型的方法詳解

    Java單測void類型的方法詳解

    這篇文章主要給大家介紹了Java中單測void類型的方法,文中給出了詳細的示例代碼,相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,需要的朋友可以跟著小編下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • Java中不常用但很好用的開發(fā)小技巧分享

    Java中不常用但很好用的開發(fā)小技巧分享

    其實干 Java 開發(fā),必然離不開一些計算,所以就會經(jīng)常用到 BigDecimal ,今天小編就來給大家分項一下那些不怎么常用,但是非常有用的方法,需要的可以參考一下
    2023-04-04
  • Spring(一):IOC如何推導(dǎo)和理解

    Spring(一):IOC如何推導(dǎo)和理解

    下面小編就為大家?guī)硪黄斦凷pring對IOC的理解(推薦篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-07-07
  • Spring Boot如何使用JDBC獲取相關(guān)的數(shù)據(jù)詳解

    Spring Boot如何使用JDBC獲取相關(guān)的數(shù)據(jù)詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot如何使用JDBC獲取相關(guān)數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 關(guān)于springboot配置文件密文解密方式

    關(guān)于springboot配置文件密文解密方式

    這篇文章主要介紹了關(guān)于springboot配置文件密文解密方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論