自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實(shí)現(xiàn)Swing ActionListener接口

開發(fā) 后端
本文介紹實(shí)現(xiàn)Swing ActionListener接口,以及介紹在addActionListener的參數(shù)中新定義到一個(gè)ActionListenner并重寫它的actionPerformed。

關(guān)于ActionListener的響應(yīng)問題,就我的理解可以有兩種方法。第一種就是你放到一個(gè)新的類里面,實(shí)現(xiàn)Swing ActionListener接口,然后寫好public void actionPerformed(ActionEvent e)的方法。這種當(dāng)繼承自JFrame還是蠻有用的,但是如果是一個(gè)在public static void main(String[] args)中建立一個(gè)JFrame,然后對(duì)里面的(比如按鈕)實(shí)現(xiàn)監(jiān)聽,那么去實(shí)現(xiàn)Swing ActionListener接口就不那么合適了(哎,很多都是當(dāng)你做過后才知道什么是合適的),不過Java提供了另一種解決方案:

  1. import java.awt.*;  
  2. import javax.swing.*;  
  3. import java.awt.event.*;  
  4.  
  5. public class ActionListenerTest ...{  
  6. public static void main(String[] args) ...{  
  7.    JFrame frame = new JFrame("Button Test");  
  8.    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  9.     
  10.    final JButton jbClose = new JButton("Close the Frame");  
  11.    jbClose.addActionListener(new ActionListener () ...{  
  12.     public void actionPerformed(ActionEvent e) ...{  
  13.      if (e.getSource().equals(jbClose)) ...{  
  14.       System.exit(0);  
  15.      }  
  16.     }  
  17.    }  
  18.    );  
  19.     
  20.    frame.add(jbClose);  
  21.    frame.pack();  
  22.    frame.setVisible(true);  
  23.   }  

也就是在addActionListener的參數(shù)中新定義到一個(gè)ActionListenner并重寫它的actionPerformed。不過要注意的是,這個(gè)actionPerformed一定要是public的,不然權(quán)限不夠。還有就是里面用到的組件在外部必須聲明為final的,這點(diǎn)也許會(huì)造成些許使用的限制。

另一種其實(shí)是很常用的那種,前面也用到過,不過這里再寫一遍好了,翻來翻去很麻煩的。

  1. import java.awt.*;  
  2. import javax.swing.*;  
  3. import java.awt.event.*;  
  4. public class ButtonFrame extends JFrame implements ActionListener ...{  
  5. JButton jbClose = null;  
  6. public ButtonFrame() ...{  
  7.    super("ButtonFrame Test");  
  8.    jbClose = new JButton ("Close the Frame in ButtonFrame");  
  9.    jbClose.addActionListener(this);  
  10.    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  11.     
  12.    this.add(jbClose);  
  13.    this.pack();  
  14.    this.setVisible(true);  
  15.   }  
  16.    
  17.   public void actionPerformed(ActionEvent e) ...{  
  18.    if (e.getSource().equals(jbClose)) ...{  
  19.     System.exit(0);  
  20.    }  
  21.   }  
  22.   public static void main(String[] args) ...{  
  23.    ButtonFrame bf = new ButtonFrame();  
  24.   }  

兩個(gè)程序的效果是一樣的,都是點(diǎn)擊了按鈕后就結(jié)束程序。 以上是介紹實(shí)現(xiàn)Swing ActionListener接口

【編輯推薦】

  1. Swing容器組件的顯示效果
  2. 淺談.Net與Java Swing相比
  3. 詳解Swing組件相應(yīng)外觀
  4. Java Swing事件處理方法
  5. 淺談Swing支持透明和不規(guī)則窗口
責(zé)任編輯:佚名 來源: 中國IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-17 17:16:44

Swing實(shí)現(xiàn)的目標(biāo)

2009-07-16 10:26:49

渲染器接口Swing

2009-07-15 10:06:54

Swing實(shí)現(xiàn)MDI

2009-07-15 14:10:26

Swing控件

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-16 08:53:03

Swing任務(wù)Swing線程

2009-07-16 16:01:55

EventQueue

2009-07-14 18:28:58

Swing入門

2009-07-15 14:29:24

構(gòu)造JListSwing

2009-07-10 10:37:50

Swing Set示例

2009-07-15 13:06:38

Swing組件

2009-07-15 09:06:07

BeanTableMoSwing

2009-07-15 11:19:17

invokeLaterSwing

2009-07-10 13:36:32

Swing容器

2021-05-14 07:45:07

Sentinel 接口限流

2010-03-04 09:20:48

Android接口

2010-02-06 18:04:21

Android 接口

2010-03-22 13:15:07

Python支付接口

2009-08-31 15:55:17

C#實(shí)現(xiàn)Strateg

2009-07-10 15:41:27

Swing AWT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)