当前位置: 移动技术网 > IT编程>开发语言>Java > java GUI编程之监听操作实例分析

java GUI编程之监听操作实例分析

2020年03月09日  | 移动技术网IT编程  | 我要评论

工行个人住房贷款,沈晓培,ca1798

本文实例讲述了java gui编程之监听操作。分享给大家供大家参考,具体如下:

当点击frame中的component组件时,会产生相应的效果,但是相应的其必须进行监听,确定是那个对象,那种操作,但是如果用cup进行主动的监听就会消耗大量的资源,所以有了被动的监听,即对应的事件发生后会自动的执行相关的代码。

button监听:

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

进行被动监听是你必须确定是什么地方什么类型的componet发出的,我们不可能提供所有的信息,所以我们初建了一个事件对应一个对象,其都实现了一个接口,当事件发生时,就会调用对应的事件方法。即(implements actionlistener),而对应的当实现方法是就要求其提供事件动作。

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

注:当一个监听器监听多个button对象时,我们可以用setactioncommand进行区别,这个相当于是一个属性亦或是一种标记。

textfield(文本输入监听)

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)是相当于在输入结束按回车键的时候,会自动的把输入框里的数据清空。如果没有,其还会继续存在。

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,表示输入后的表面显示。如果没有,即为输入什么就显示什么,如果添加了就和输密码一样被覆盖了。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网