javaGUI編程中如何進(jìn)行監(jiān)聽操作

javaGUI編程中如何進(jìn)行監(jiān)聽操作,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元吉陽(yáng)做網(wǎng)站,已為上家服務(wù),為吉陽(yáng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

當(dāng)點(diǎn)擊Frame中的component組件時(shí),會(huì)產(chǎn)生相應(yīng)的效果,但是相應(yīng)的其必須進(jìn)行監(jiān)聽,確定是那個(gè)對(duì)象,那種操作,但是如果用cup進(jìn)行主動(dòng)的監(jiān)聽就會(huì)消耗大量的資源,所以有了被動(dòng)的監(jiān)聽,即對(duì)應(yīng)的事件發(fā)生后會(huì)自動(dòng)的執(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)行被動(dòng)監(jiān)聽是你必須確定是什么地方什么類型的componet發(fā)出的,我們不可能提供所有的信息,所以我們初建了一個(gè)事件對(duì)應(yīng)一個(gè)對(duì)象,其都實(shí)現(xiàn)了一個(gè)接口,當(dāng)事件發(fā)生時(shí),就會(huì)調(diào)用對(duì)應(yīng)的事件方法。即(implements ActionListener),而對(duì)應(yīng)的當(dāng)實(shí)現(xiàn)方法是就要求其提供事件動(dòng)作。

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)一個(gè)監(jiān)聽器監(jiān)聽多個(gè)button對(duì)象時(shí),我們可以用setActionCommand進(jìn)行區(qū)別,這個(gè)相當(dāng)于是一個(gè)屬性亦或是一種標(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屬于一種輸入文本類的組件,對(duì)于Frame類其一種可以直接用Frame構(gòu)造方法構(gòu)造,直接產(chǎn)生一個(gè)Frame的對(duì)象,另一種可以直接繼承Frame這樣就相當(dāng)于已經(jīng)存在了一個(gè)Frame類,可以直接使用Frame里面的方法。

注:其上面的setText(null)是相當(dāng)于在輸入結(jié)束按回車鍵的時(shí)候,會(huì)自動(dòng)的把輸入框里的數(shù)據(jù)清空。如果沒有,其還會(huì)繼續(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); }}

僅僅是對(duì)Text Filed對(duì)象添加了一個(gè)setEchoChar,表示輸入后的表面顯示。如果沒有,即為輸入什么就顯示什么,如果添加了就和輸密碼一樣被覆蓋了。

關(guān)于javaGUI編程中如何進(jìn)行監(jiān)聽操作問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

分享標(biāo)題:javaGUI編程中如何進(jìn)行監(jiān)聽操作
網(wǎng)站網(wǎng)址:http://bm7419.com/article36/jdgppg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)微信小程序、App設(shè)計(jì)企業(yè)網(wǎng)站制作營(yíng)銷型網(wǎng)站建設(shè)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名