问答题
本程序实时读取两个文本框中的整数求和。窗口中有三个文本框,分别在前两个文本框中输入整数,则在第三个文本框中显示两个整数的和(如果前两个文本框中任意一个文本框中输入了非整数,则不做运算),如图所示。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class TextFieldTest
{
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("exam_45");
setSize(WIDTH, HEIGHT);
Container contentPane=getContentPane();
DocumentListener 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);
}
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;
}
【参考答案】
第1处:new ResultListener()
第2处:resultText.setText(s)