亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java GUI編程之監(jiān)聽操作實例分析

 更新時間:2020年01月22日 10:08:41   作者:qq_42412646  
這篇文章主要介紹了java GUI編程之監(jiān)聽操作,結(jié)合實例形式分析了java GUI編程監(jiān)聽操作的Button監(jiān)聽、TextField文本輸入監(jiān)聽等相關(guān)操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了java GUI編程之監(jiān)聽操作。分享給大家供大家參考,具體如下:

當(dāng)點擊Frame中的component組件時,會產(chǎn)生相應(yīng)的效果,但是相應(yīng)的其必須進(jìn)行監(jiān)聽,確定是那個對象,那種操作,但是如果用cup進(jìn)行主動的監(jiān)聽就會消耗大量的資源,所以有了被動的監(jiān)聽,即對應(yīng)的事件發(fā)生后會自動的執(zhí)行相關(guān)的代碼。

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");
 }
}

進(jìn)行被動監(jiān)聽是你必須確定是什么地方什么類型的componet發(fā)出的,我們不可能提供所有的信息,所以我們初建了一個事件對應(yīng)一個對象,其都實現(xiàn)了一個接口,當(dāng)事件發(fā)生時,就會調(diào)用對應(yīng)的事件方法。即(implements ActionListener),而對應(yīng)的當(dāng)實現(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());
 }
}

注:當(dāng)一個監(jiān)聽器監(jiān)聽多個button對象時,我們可以用setActionCommand進(jìn)行區(qū)別,這個相當(dāng)于是一個屬性亦或是一種標(biāo)記。

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構(gòu)造方法構(gòu)造,直接產(chǎn)生一個Frame的對象,另一種可以直接繼承Frame這樣就相當(dāng)于已經(jīng)存在了一個Frame類,可以直接使用Frame里面的方法。

注:其上面的setText(null)是相當(dāng)于在輸入結(jié)束按回車鍵的時候,會自動的把輸入框里的數(shù)據(jù)清空。如果沒有,其還會繼續(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,表示輸入后的表面顯示。如果沒有,即為輸入什么就顯示什么,如果添加了就和輸密碼一樣被覆蓋了。

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • SpringCloud?Eureka應(yīng)用全面介紹

    SpringCloud?Eureka應(yīng)用全面介紹

    Eureka是Netflix開發(fā)的服務(wù)發(fā)現(xiàn)框架,本身是一個基于REST的服務(wù),主要用于定位運(yùn)行在AWS域中的中間層服務(wù),以達(dá)到負(fù)載均衡和中間層服務(wù)故障轉(zhuǎn)移的目的
    2022-09-09
  • IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實例解析

    IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實例解析

    這篇文章主要介紹了IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Mybatis實現(xiàn)單個和批量定義別名typeAliases

    Mybatis實現(xiàn)單個和批量定義別名typeAliases

    這篇文章主要介紹了Mybatis實現(xiàn)單個和批量定義別名typeAliases,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 利用javadoc注釋自動生成Swagger注解

    利用javadoc注釋自動生成Swagger注解

    由于現(xiàn)在controller方法上面沒有swagger注解,只能拿到接口url地址,無法獲得接口功能描述,所以本文為大家介紹一下如何利用javadoc注釋自動生成Swagger注解,感興趣的可以了解下
    2023-08-08
  • Java 守護(hù)線程_動力節(jié)點Java學(xué)院整理

    Java 守護(hù)線程_動力節(jié)點Java學(xué)院整理

    Java語言機(jī)制是構(gòu)建在JVM的基礎(chǔ)之上的,意思是Java平臺把操作系統(tǒng)的底層給屏蔽起來,所以它可以在它自己的虛擬的平臺里面構(gòu)造出對自己有利的機(jī)制,而語言或者說平臺的設(shè)計者多多少少是收到Unix思想的影響,而守護(hù)線程機(jī)制又是對JVM這樣的平臺湊合,于是守護(hù)線程應(yīng)運(yùn)而生
    2017-05-05
  • 解析Spring Data JPA的Audit功能之審計數(shù)據(jù)庫變更

    解析Spring Data JPA的Audit功能之審計數(shù)據(jù)庫變更

    Spring Data JPA 提供了Audit審計功能,用來記錄創(chuàng)建時間、創(chuàng)建人、修改時間、修改人等,下面來詳細(xì)講解下審計數(shù)據(jù)庫變更
    2021-06-06
  • springboot自動重啟的簡單方法

    springboot自動重啟的簡單方法

    Springboot提供了熱部署的方式,當(dāng)發(fā)現(xiàn)任何類發(fā)生了改變,馬上通過JVM類加載的方式,加載最新的類到虛擬機(jī)中。這篇文章主要介紹了springboot自動重啟的實現(xiàn)方法,需要的朋友可以參考下
    2018-04-04
  • SpringBoot使用@Validated處理校驗的方法步驟

    SpringBoot使用@Validated處理校驗的方法步驟

    @Validated?注解的主要目的是啟用和利用?Spring?的驗證框架,它可以用于類上也可以用于方法參數(shù)上,本文給大家介紹了SpringBoot使用@Validated優(yōu)雅的處理校驗的方法步驟,通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • MybatisPlus+Postgresql整合的幾個坑及解決

    MybatisPlus+Postgresql整合的幾個坑及解決

    這篇文章主要介紹了MybatisPlus+Postgresql整合的幾個坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 利用Java實現(xiàn)簡單的詞法分析器實例代碼

    利用Java實現(xiàn)簡單的詞法分析器實例代碼

    眾所周知編譯原理中的詞法分析算是很重要的一個部分,原理比較簡單,不過網(wǎng)上大部分都是用C語言或者C++來編寫,因為最近在學(xué)習(xí)Java,故用Java語言實現(xiàn)了簡單的詞法分析器。感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12

最新評論