<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Java程式設計 圖形化使用者介面 【七】事件處理上
事件和監聽器
事件:表示一個物件發生狀態變化
監聽器:不斷地監聽事件的變化,並根據這些事件進行相應地處理
事件類 EventObject類
EventObject類的定義格式
public class EventObject extends Object implements Serializable{ public EventObject(Object source){ // 構造一個發生事件的物件 } public Object getSource(){ // 返回一個事件物件 } public String toString(){ // 得到資訊 } }
Java事件處理流程
WindowListener是專門處理表單事件的監聽介面
方法 | 作用 |
---|---|
void windowActivated(WindowEvent e) | 將視窗變為活動視窗時觸發 |
void windowDeactivated(WindowEvent e) | 將視窗變為不活動視窗時觸發 |
void windowClosed(WindowEvent e) | 當視窗被關閉時觸發 |
void windowClosing(WindowEvent e) | 當視窗正在關閉時觸發 |
void windowIconified(WindowEvent e) | 視窗最小化時觸發 |
void windowDeiconified(WindowEvent e) | 視窗從最小化恢復到正常狀態時觸發 |
void windowOpened(WindowEvent e) | 視窗開啟時觸發 |
實現WindowListener
import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class WindowEventHandle implements WindowListener { @Override public void windowActivated(WindowEvent e) { System.out.println("視窗被選中"); } @Override public void windowClosed(WindowEvent e) { System.out.println("視窗被關閉"); } @Override public void windowClosing(WindowEvent e) { System.out.println("視窗關閉"); } @Override public void windowDeactivated(WindowEvent e) { System.out.println("取消視窗選中"); } @Override public void windowDeiconified(WindowEvent e) { System.out.println("視窗從最小化恢復"); } @Override public void windowIconified(WindowEvent e) { System.out.println("視窗最小化"); } @Override public void windowOpened(WindowEvent e) { System.out.println("視窗被開啟"); } }
在表單上註冊事件監聽器
import javax.swing.*; import java.awt.*; public class Hello { public static void main(String[] args) { JFrame frame = new JFrame("一"); frame.addWindowListener(new WindowEventHandle()); frame.setSize(500,300); frame.setBackground(Color.BLUE); frame.setLocation(500,500); frame.setVisible(true); } }
方便使用者進行事件處理的實現。以WindowAdapter為例,使用者只要繼承了此類,就可以根據自己的需要覆寫方法,如果現在只關心視窗關閉方法,則只在子類中覆寫windowClosing()方法即可
通過WindowAdapter實現監聽
import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class WindowEventHandle extends WindowAdapter { @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); System.out.println("視窗關閉"); System.exit(1); } }
而在表單操作的程式碼中,直接使用以上的監聽器類即可
import javax.swing.*; import java.awt.*; public class Hello { public static void main(String[] args) { JFrame frame = new JFrame("一"); frame.addWindowListener(new WindowEventHandle()); frame.setSize(500,300); frame.setBackground(Color.BLUE); frame.setLocation(500,500); frame.setVisible(true); } }
使用匿名內部類
import javax.swing.*; import java.awt.*; import java.awt.event.WindowEvent; public class Hello { public static void main(String[] args) { JFrame frame = new JFrame("一"); frame.addWindowListener(new WindowEventHandle(){ @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); System.exit(1); } }); frame.setSize(500,300); frame.setBackground(Color.BLUE); frame.setLocation(500,500); frame.setVisible(true); } }
如果現在使用介面卡操作類,則直接編寫匿名內部類就可以減少監聽類的定義
到此這篇關於Java 入門圖形化使用者介面設計之事件處理上的文章就介紹到這了,更多相關Java 事件處理內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45