GUI学习-监听文本框
GUI学习设置文本框,并监听文本框输入文本,转发至控制台,并学会加密输入文本
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestField {
public static void main(String[] args) {
// main 方法应该只含有启动
new MyFrame();
}
}
class MyFrame extends Frame{
public MyFrame(){
TextField textField = new TextField();
add(textField);
// 监听这个文本框输入文字
MyActionListenerTwo myActionListenerTwo = new MyActionListenerTwo();
// 摁下回车就会触发输入框事件
textField.addActionListener(myActionListenerTwo);
// 设置替换编码
textField.setEchoChar('*');
pack();
setVisible(true);
}
}
class MyActionListenerTwo implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
TextField field = (TextField) e.getSource(); // 获得一些资源 返回的一个对象
System.out.println(field.getText());// 获得输入框中的文本
field.setText(""); // null
}
}
以上则是简单的文本框监听,下面通过一个计算器创作来熟悉文本框监听内容
package Study.Java.JavaGUI.GUIGames;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TextCalc {
public static void main(String[] args) {
new Calculator();
}
}
// 计算器类
class Calculator extends Frame{
public Calculator(){
// 三个文本框 一个按钮 一个标签
TextField textField1 = new TextField(10);
TextField textField2 = new TextField(10);
TextField textField3 = new TextField(20);
Button button = new Button("=");
button.addActionListener(new MyCalcListener(textField1,textField2,textField3));
Label label = new Label("+");
setLayout(new FlowLayout());
add(textField1);
add(label);
add(textField2);
add(button);
add(textField3);
pack();
setVisible(true);
WindowOver(this);
}
private static void WindowOver(Frame frame){
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
// 监听器
class MyCalcListener implements ActionListener{
// 获取三个变量
private TextField textField1,textField2,textField3;
public MyCalcListener(TextField textField1,TextField textField2,TextField textField3) {
this.textField1 = textField1;
this.textField2 = textField2;
this.textField3 = textField3;
}
@Override
public void actionPerformed(ActionEvent e) {
// 获得两个数 加法运算后放入第三个框 清除前两个数
int num1 = Integer.parseInt(textField1.getText());
int num2 = Integer.parseInt(textField2.getText());
textField3.setText("" + (num1 + num2));
textField1.setText("");
textField2.setText("");
}
}
运行结果为: