Java事件處理機制-事件監聽器的四種實現方式
自身類作為事件監聽器 :
Java程式碼:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*Java事件處理機制:自身類作為事件監聽器
*@author Winty([email protected])
*@version 2008-12-3
*/
class ThisClassEvent extends JFrame implements ActionListener{
JButton btn;
public ThisClassEvent(){
super("Java事件監聽機制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=new JButton("點選");
btn.addActionListener(this);
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
/**************************************/
public void actionPerformed (ActionEvent e){
Container c=getContentPane();
c.setBackground(Color.red);
}
/**************************************/
public static void main(String args[]){
new ThisClassEvent();
}
}
外部類作為事件監聽器 :
Java程式碼
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*Java事件處理機制:外部類作為事件監聽器
*@author Winty([email protected])
*@version 2008-12-3
*/
class OuterClassEvent extends JFrame{
JButton btn;
public OuterClassEvent(){
super("Java事件監聽機制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=new JButton("點選");
btn.addActionListener(new OuterClass(this));
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
public static void main(String args[]){
new OuterClassEvent();
}
}
/*外部類*********************************/
class OuterClass implements ActionListener{
OuterClassEvent oce;
public OuterClass(OuterClassEvent oce){
this.oce = oce;
}
public void actionPerformed(ActionEvent e){
Container c=oce.getContentPane();
c.setBackground(Color.red);
}
}
匿名內部類作為事件監聽器 :
Java程式碼
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*Java事件處理機制:匿名內部類作為事件監聽器
*@author Winty([email protected])
*@version 2008-12-3
*/
class AnonymousEvent extends JFrame{
JButton btn;
public AnonymousEvent(){
super("Java事件監聽機制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=new JButton("點選");
/*匿名內部類******************************/
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
Container c=getContentPane();
c.setBackground(Color.red);
}
}
);
/***************************************/
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
public static void main(String args[]){
new AnonymousEvent();
}
}
內部類作為事件監聽器:
Java程式碼:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*Java事件處理機制:內部類作為事件監聽器
*@author Winty([email protected])
*@version 2008-12-3
*/
class InnerClassEvent extends JFrame{
JButton btn;
public InnerClassEvent(){
super("Java事件監聽機制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=new JButton("點選");
btn.addActionListener(new InnerClass());
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
/*內部類*********************************/
class InnerClass implements ActionListener{
public void actionPerformed (ActionEvent e){
Container c=getContentPane();
c.setBackground(Color.red);
}
}
/**************************************/
public static void main(String args[]){
new InnerClassEvent();
}
}
相關推薦
Java事件處理機制-事件監聽器的四種實現方式
自身類作為事件監聽器 : Java程式碼: import javax.swing.*; import java.awt.*; import java.awt.event.*; /** *Java事件處理機制:自身類作為事件監聽器 *@author Winty([ema
5.6-全棧Java筆記:內部類的四種實現方式
java一般情況,我們把類定義成獨立的單元。有些情況下,我們把一個類放在另一個類的內部定義,稱為內部類(innerclasses)。內部類的作用1.內部類提供了更好的封裝。只能讓外部類直接訪問,不允許同一個包中的其他類直接訪問。2.內部類可以直接訪問外部類的私有屬性,內部類被當成其外部類的成員。 但外部類不能
Java實現多線程的四種實現方式
lis star 維護 invoke 1.0 threads arraylist urn fix 以計算0到1000之間的和為例 import java.util.ArrayList; import java.util.LinkedList; import java.uti
Java併發程式設計(二)多執行緒四種實現方式
Java實現多執行緒的方式 Java實現多執行緒的方式有4種: 繼承Thread方法、實現Runnable介面、實現Callable介面並通過FutureTask建立執行緒、使用ExecutorService。 其中,前兩種執行緒執行結果沒有返回值,後兩種是有返回值的。 1、繼承Th
Java多執行緒之四種實現方式
介紹 繼承Thread類,並重寫其run方法 實現Runnable介面 實現Callable介面通過FutureTask包裝器來建立Thread執行緒 執行緒池,使用ExecutorService、Callable、Future實現有返回結果的多執行緒。 其
JAVA多執行緒的四種實現方式
1.繼承Thread 重寫run()方法,該run方法表示執行緒要完成的任務。建立執行緒物件,呼叫物件的start()方法來啟動執行緒。 2.Runnable介面 重寫介面中run方法。建立Runable例項類的例項,並依此例項作為Thread的target來建立Th
【連載】redis庫存操作,分散式鎖的四種實現方式[三]--基於Redis watch機制實現分散式鎖
一、redis的事務介紹 1、 Redis保證一個事務中的所有命令要麼都執行,要麼都不執行。如果在傳送EXEC命令前客戶端斷線了,則Redis會清空事務佇列,事務中的所有命令都不會執行。而一旦客戶端傳送了EXEC命令,所有的命令就都會被執行,即使此後客戶端斷線也沒關係,因為Redis中已經記錄了所有要執行的
Java多線程的四種實現方式
util println 通過 泛型 pri png 返回值 sch get 1.Java多線程實現的方式有四種:1.繼承Thread類,重寫run方法2.實現Runnable接口,重寫run方法,實現Runnable接口的實現類的實例對象作為Thread構造函數的targ
Java中對xml檔案的四種解析方式
books.xml <?xml version="1.0" encoding="utf-8"?> <bookstore> <book id="1"> <name>冰與火之歌</name>
JavaScript中的單體模式四種實現方式
ret div 劃分 scrip diff different 不同的 如果 get 1 /* 2 1 簡單單體 3 */ 4 var Singleton = { 5 attr1: 1 , 6 method1:funct
RxJS的另外四種實現方式(三)——性能最高的庫
如何 www table fas set export llb const events 接上篇 RxJS的另外四種實現方式(二)——代碼最小的庫(續) 代碼最小的庫rx4rx-lite雖然在性能測試中超過了callbag,但和most庫較量的時候卻落敗了,於是我下載了
最近在研究多線程,淺談JAVA中多線程的幾種實現方式
進行 數據 使用 導致 效率問題 多線程 方法 sta img 多線程的實現方式: 個人認為,要說多線程的實現方式,萬變不離其宗,最基本的就是兩種1.繼承Thread類;2.實現runnable接口,本質上來說就是用來啟動線程執行任務的過程,具體來說的話,通過這
RxJS的另外四種實現方式(三)——效能最高的庫
程式碼最小的庫rx4rx-lite雖然在效能測試中超過了callbag,但和most庫較量的時候卻落敗了,於是我下載了most庫,要解開most庫效能高的原因。 我們先上一組測試資料,這是在我的windows10 上面跑的 dataflow for 10000
RxJS的另外四種實現方式(六)——使用Stream類實現
該實現方式與之前幾種不同的,該實現方式僅針對Nodejs環境。在Nodejs環境中,提供了Stream類,包括Readable、Transform、Writeable等子類都是可擴充套件的。從字面上看,正好對應Rx中的生產者、傳遞者、消費者。 實現該庫的起因是
斐波那契數列的四種實現方式(C語言)
斐波那契數列是一組第一位和第二位為1,從第三位開始,後一位是前兩位和的一組遞增數列, 像這樣的:1、1、2、3、5、8、13、21、34、55… 今天,我們用四種方式來進行實現: 1.遞迴 int Fibon1(int n) { if (n == 1 || n
【原創】redis庫存操作,分散式鎖的四種實現方式[連載一]--基於zookeeper實現分散式鎖
一、背景 在電商系統中,庫存的概念一定是有的,例如配一些商品的庫存,做商品秒殺活動等,而由於庫存操作頻繁且要求原子性操作,所以絕大多數電商系統都用Redis來實現庫存的加減,最近公司專案做架構升級,以微服務的形式做分散式部署,對庫存的操作也單獨封裝為一個微服務,這樣在高併發情況下,加減庫存時,就會出現超賣等
【原創】redis庫存操作,分布式鎖的四種實現方式[連載一]--基於zookeeper實現分布式鎖
zookeepe operation iat 並發 method logger 方案 nag 概念 一、背景 在電商系統中,庫存的概念一定是有的,例如配一些商品的庫存,做商品秒殺活動等,而由於庫存操作頻繁且要求原子性操作,所以絕大多數電商系統都用Redis來實現庫存的加減,
【原創】redis庫存操作,分散式鎖的四種實現方式[連載二]--基於Redisson實現分散式鎖
一、redisson介紹 redisson實現了分散式和可擴充套件的java資料結構,支援的資料結構有:List, Set, Map, Queue, SortedSet, ConcureentMap, Lock, AtomicLong, CountDownLatch。並且是執行緒安全的,底層使用N
內部類的四種實現方式
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> //成員內部類......相當於非靜態方法class MemberInner {
單例模式(Singleton Pattern)典型的四種實現方式
一、簡介: 引入百度百科對單例模式的介紹: 單例模式(Singleton Pattern)是一種常用的軟體設計模式。《設計模式》一書中對其介紹:“保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。” 在某些時候,一個系統只有一個例項是很重要且必要的,比如:Wind