java GUI編程之監(jiān)聽操作實例分析
本文實例講述了java GUI編程之監(jiān)聽操作。分享給大家供大家參考,具體如下:
當點擊Frame中的component組件時,會產生相應的效果,但是相應的其必須進行監(jiān)聽,確定是那個對象,那種操作,但是如果用cup進行主動的監(jiān)聽就會消耗大量的資源,所以有了被動的監(jiān)聽,即對應的事件發(fā)生后會自動的執(zhí)行相關的代碼。
Button監(jiān)聽:
instance 1:
import java.awt.*; import java.awt.event.*; public class MoniterStart { public static void main(String[] args) { Frame f = new Frame(); Button b = new Button("Press "); f.add(b,BorderLayout.CENTER); MyMonitor bh = new MyMonitor(); b.addActionListener(bh); f.setBounds(100, 100, 300, 300); f.setVisible(true); } } class MyMonitor implements ActionListener{ public void actionPerformed(ActionEvent e) { System.out.println("aAH"); } }
進行被動監(jiān)聽是你必須確定是什么地方什么類型的componet發(fā)出的,我們不可能提供所有的信息,所以我們初建了一個事件對應一個對象,其都實現(xiàn)了一個接口,當事件發(fā)生時,就會調用對應的事件方法。即(implements ActionListener),而對應的當實現(xiàn)方法是就要求其提供事件動作。
instance 2:
import java.awt.*; import java.awt.event.*; public class Monitor2 { public static void main(String[] args) { Frame f1 = new Frame(); Button b1 = new Button("Start "); Button b2 = new Button("Stop "); b1.setActionCommand("The End"); f1.add(b1,BorderLayout.CENTER); f1.add(b2,BorderLayout.SOUTH); MyMonitor1 bh = new MyMonitor1(); b1.addActionListener(bh); b2.addActionListener(bh); f1.setBounds(100, 100, 300, 300); f1.setVisible(true); } } class MyMonitor1 implements ActionListener{ public void actionPerformed(ActionEvent e) { System.out.println("aAH you get it " + e.getActionCommand()); } }
注:當一個監(jiān)聽器監(jiān)聽多個button對象時,我們可以用setActionCommand進行區(qū)別,這個相當于是一個屬性亦或是一種標記。
TextField(文本輸入監(jiān)聽)
instance 3;
import java.awt.*; import java.awt.event.*; public class TfMonitor { public static void main(String[] args) { new TFFrame(); } } class TFFrame{ TFFrame(){ Frame f = new Frame("TF"); TextField tf = new TextField(); f.add(tf); tf.addActionListener(new TFFrameMonitor()); f.setBounds(100, 100, 300, 300); f.setVisible(true); } } /* class TFFrame extends Frame{ TFFrame(){ // Frame f = new Frame("TF"); TextField tf = new TextField(); add(tf); tf.addActionListener(new TFFrameMonitor()); // f.setBounds(100, 100, 300, 300); setBounds(100, 100, 300, 300); setVisible(true); } } */ class TFFrameMonitor implements ActionListener{ public void actionPerformed(ActionEvent e) { TextField text = (TextField)e.getSource(); System.out.println(text.getText()); // text.setText(null); } }
TextField屬于一種輸入文本類的組件,對于Frame類其一種可以直接用Frame構造方法構造,直接產生一個Frame的對象,另一種可以直接繼承Frame這樣就相當于已經存在了一個Frame類,可以直接使用Frame里面的方法。
注:其上面的setText(null)是相當于在輸入結束按回車鍵的時候,會自動的把輸入框里的數據清空。如果沒有,其還會繼續(xù)存在。
instance 4:
import java.awt.Frame; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TFFrame2Monitor { public static void main(String[] args) { new TFFrame2(); } } class TFFrame2 extends Frame{ TFFrame2(){ TextField tf = new TextField(); add(tf); tf.addActionListener(new TFFrameMonitor2()); tf.setEchoChar('*'); setBounds(100, 100, 300, 300); setVisible(true); } } class TFFrameMonitor2 implements ActionListener{ public void actionPerformed(ActionEvent e) { TextField text = (TextField)e.getSource(); System.out.println(text.getText()); text.setText(null); } }
僅僅是對Text Filed對象添加了一個setEchoChar,表示輸入后的表面顯示。如果沒有,即為輸入什么就顯示什么,如果添加了就和輸密碼一樣被覆蓋了。
更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
- java GUI實現(xiàn)加法計算器
- Java實現(xiàn)的具有GUI的校園導航系統(tǒng)的完整代碼
- Java圖形界面GUI布局方式(小結)
- java GUI實現(xiàn)ATM機系統(tǒng)(3.0版)
- JavaGUI實現(xiàn)隨機單詞答題游戲
- Java使用GUI繪制線條的示例
- 五種JAVA GUI布局管理的方式
- JAVA基礎-GUI
- IntelliJ IDEA安裝插件阿里巴巴Java開發(fā)手冊(Alibaba Java Coding Guidelines)
- 用GUI實現(xiàn)java版貪吃蛇小游戲
- java GUI實現(xiàn)五子棋游戲
- java GUI編程之paint繪制操作示例
- java GUI編程之布局控制器(Layout)實例分析
- java GUI界面初步入門示例【AWT包】
- Java的帶GUI界面猜數字游戲的實現(xiàn)示例
- JAVA圖形界面(GUI)之表格的示例代碼
- java Gui實現(xiàn)肯德基點餐收銀系統(tǒng)
- 教你用Java GUI實現(xiàn)文本文件的讀寫
相關文章
Mybatis實現(xiàn)單個和批量定義別名typeAliases
這篇文章主要介紹了Mybatis實現(xiàn)單個和批量定義別名typeAliases,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09解析Spring Data JPA的Audit功能之審計數據庫變更
Spring Data JPA 提供了Audit審計功能,用來記錄創(chuàng)建時間、創(chuàng)建人、修改時間、修改人等,下面來詳細講解下審計數據庫變更2021-06-06SpringBoot使用@Validated處理校驗的方法步驟
@Validated?注解的主要目的是啟用和利用?Spring?的驗證框架,它可以用于類上也可以用于方法參數上,本文給大家介紹了SpringBoot使用@Validated優(yōu)雅的處理校驗的方法步驟,通過代碼示例介紹的非常詳細,需要的朋友可以參考下2024-08-08MybatisPlus+Postgresql整合的幾個坑及解決
這篇文章主要介紹了MybatisPlus+Postgresql整合的幾個坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03