📄 jsq.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class JSQ
{
public static void main(String[] args)
{
TextFieldFrame frame = new TextFieldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class TextFieldFrame extends JFrame
{
public TextFieldFrame()
{
setTitle("JSQ");
setSize(WIDTH, HEIGHT);
Container contentPane = getContentPane();
//新建文档监听器
DocumentListener resultListener = new ResultListener();
//建立容纳文本域的面板
JPanel textPanel = new JPanel();
originText = new JTextField("Input Integer 1", 20);
//为第一个文本域安装一个文档监听器
originText.getDocument().addDocumentListener(resultListener);
addText = new JTextField("Input Integer 2", 20);
//为第二个文本域安装一个文档监听器
addText.getDocument().addDocumentListener(resultListener);
//第三个文本域,将第一个文本域中和第二个文本域中的输入数据进行求和计算
resultText = new JTextField("Get the Result", 20);
//第三个文本域内容是由前两个文本域求和而得,因此不允许修改
resultText.setEditable(false);
textPanel.add(originText);
textPanel.add(addText);
textPanel.add(resultText);
contentPane.add(textPanel);
}
//获取第一个和第二个文本域的内容,进行求和计算,并写入第三个文本域中
public void getAnswer()
{
try
{
int add1, add2, answer;
String s;
//获取第一个和第二个文本域的内容,并将其解析为数字类型变量
add1 = Integer.parseInt(originText.getText().trim());
add2 = Integer.parseInt(addText.getText().trim());
//求和
answer = add1 + add2;
s = new String("=" + answer);
//将结果写入第三个文本域中
resultText.setText(s);
}
//对于解析错误的情况,将抛出异常,因而第三个文本域的内容不会被改变
catch (NumberFormatException e)
{
}
}
private class ResultListener
implements DocumentListener
{
public void insertUpdate(DocumentEvent e)
{
getAnswer();
}
public void removeUpdate(DocumentEvent e)
{
getAnswer();
}
public void changedUpdate(DocumentEvent e)
{
}
}
public static final int WIDTH = 350;
public static final int HEIGHT = 150;
private JTextField originText;
private JTextField addText;
private JTextField resultText;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -