十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
javaGUI编程中如何进行监听操作,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元吉阳做网站,已为上家服务,为吉阳各地企业和个人服务,联系电话:028-86922220
当点击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,表示输入后的表面显示。如果没有,即为输入什么就显示什么,如果添加了就和输密码一样被覆盖了。
关于javaGUI编程中如何进行监听操作问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。