工行个人住房贷款,沈晓培,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,表示输入后的表面显示。如果没有,即为输入什么就显示什么,如果添加了就和输密码一样被覆盖了。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论