java GUI编程之监听操作实例分析
作者:qq_42412646 时间:2022-09-28 05:55:53
本文实例讲述了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,表示输入后的表面显示。如果没有,即为输入什么就显示什么,如果添加了就和输密码一样被覆盖了。
希望本文所述对大家java程序设计有所帮助。
来源:https://blog.csdn.net/qq_42412646/article/details/102252928
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Intellij IDEA 2018配置Java运行环境的方法步骤
![](https://img.aspxhome.com/file/2023/6/62456_0s.png)
Maven配置文件pom.xml详解
SpringBoot整合canal实现数据同步的示例代码
![](https://img.aspxhome.com/file/2023/1/61661_0s.png)
springboot自动扫描添加的BeanDefinition源码实例详解
![](https://img.aspxhome.com/file/2023/3/59943_0s.png)
Java多线程编程中使用Condition类操作锁的方法详解
Java内存模型详解
![](https://img.aspxhome.com/file/2023/2/57592_0s.webp)
Java动态 代理的应用详解
Java语言实现二叉堆的打印代码分享
![](https://img.aspxhome.com/file/2023/8/64008_0s.jpg)
SpringMVC记录我遇到的坑_AOP注解无效,切面不执行的解决
SpringBoot2零基础到精通之映射与常用注解请求处理
![](https://img.aspxhome.com/file/2023/1/62141_0s.jpg)
Mybatis分页插件使用方法详解
深入理解Javascript中的this关键字
java GUI实现学生图书管理简单实例
![](https://img.aspxhome.com/file/2023/9/58999_0s.png)
浅谈Java中Map和Set之间的关系(及Map.Entry)
![](https://img.aspxhome.com/file/2023/9/57949_0s.jpg)
java中sdk与jdk的区别详细解析
Java编程实现非对称加密的方法详解
SpringBoot超详细讲解@Value注解
Dubbo retries 超时重试机制的问题原因分析及解决方案
Java获取任意http网页源代码的方法
带你一文深入认识Java String类
![](https://img.aspxhome.com/file/2023/4/64154_0s.png)