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

网友投稿 258 2022-12-16


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

本文实例讲述了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{

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

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

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java GUI编程之paint绘制操作示例
下一篇:SpringSecurity 默认表单登录页展示流程源码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~