在我们的日常生活中,很多时候我需要获取用户在文本框中输入的一些信息,并将这些信息提取出来,进行后面的一些功能性的操作,这个时候我们就要对用户输入的文本框进行监听,通过文本框的监听,获取用户的输入信息。
1.简单获取用户在文本框中输入的信息
示例代码如下:
package com.cxj;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class text {
public static void main(String[] args) {
//我们要习惯主类里只写启动,其他的具体操作放在其他类里面
new myframe();
}
}
class myframe extends Frame{
//创建myframe的构造方法
public myframe(){
//TextField为文本框类型
TextField textField1=new TextField();
//将文本框加入到myframe中
add(textField1);
//创建一个addActionListener()方法需要的实例化的参数
myactionlistener myactionlistener1=new myactionlistener();
textField1.addActionListener( myactionlistener1);
setLocation(500,500);
//设置窗口的可见性
setVisible(true);
//pack()函数是java里的一个内部函数,可以自动把组件按默认的形式布局
pack();
}
}
//重写监听事件
class myactionlistener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
TextField field=(TextField)e.getSource();//getSourse()方法能获得一些资源,并且返回一个具体的对象,所以这里我们只用定义返回对象的类型
System.out.println(field.getText());
//当按下回车键的时候,文本框赋空
field.setText("");
}
}
运行的效果如下:
2.做一个简单的加法计算器
计算器的构思图如下:
示例代码如下:
package com.qaz.qwe;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculator {
public static void main(String[] args) {
new calculator1();
}
}
class calculator1 extends Frame{
public calculator1(){
//创建三个文本框,一个按钮,一个标签
TextField a1 =new TextField(5);
TextField a2 =new TextField(5);
TextField a3 =new TextField(10);
Button button=new Button("=");
//监听按钮,当按钮按下的时候,输出结果
actionListener2 d=new actionListener2( a1,a2,a3);
button.addActionListener(d);
Label b1=new Label("+");
//使用流式布局
setLayout(new FlowLayout());
add(a1);
add(b1);
add(a2);
add(button);
add(a3);
setVisible(true);
pack();
}
}
class actionListener2 implements ActionListener{
TextField a1;TextField a2;TextField a3;
//获取用户输入的三个值,然后在重写的方法中,进行相应的加法操作
public actionListener2(TextField a1,TextField a2,TextField a3){
this.a1=a1;
this.a2=a2;
this.a3=a3;
}
@Override
public void actionPerformed(ActionEvent e) {
//将得到的文本转换为int型
int i=Integer.parseInt(a1.getText());
int j=Integer.parseInt(a2.getText());
//再将算得的结果放入到文本框a3
a3.setText(""+(i+j));
//按下回车键之后,文本框a1和a2,清空
a1.setText("");
a2.setText("");
}
}
运行的效果如下: