问答题

本程序的功能是实时监听文本域中字符的数目。窗口中有一个文本域和一个文字标签,在文本域中输入字符时,文字标签将实时显示当前文本框中字符的个数,如图所示。


import java.awt.*;
import java.awt.event.*;
class exam_64 extends Frame {
TextArea ta= new TextArea(null, 10, 40);
Label caret=new Label("字符数=0");
exam_64() {
super("exam_64");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
add(ta, BorderLayout.CENTER);
add(caret, BorderLayout.SOUTH);
caret.addKeyListener(new KeyEventHandler()) ;
ta.addMouseListener(new MouseEventHandler());
pack();
show();
}
class KeyEventHandler implements KeyAdapter {
public void keyTyped(KeyEvent evt) {
caret.setText("字符数="+ta.getText().length());
}
}
void MouseEventHandler extends MouseAdapter {
public void mouseClicked(MouseEvent evt) {
caret.setText("字符数="+ta.getText().length());
}
}
static public void main(String[] args) {
new exam_64();
}
}

【参考答案】

第1处:ta.addKeyListener(new KeyEventHandler())
第2处:class ......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
本程序是一个Applet,功能是进行简单的实数四则运算,如图所示。import java.awt.*;import javax.swing.*;import java.awt.event.*;public class exam_63 extends JApplet{public void init(){Container contentPane=getContentPane();CalculatorPanel panel=new CalculatorPanel();add(panel);}}class CalculatorPanel extends JPanel{public CalculatorPanel(){setLayout(new BorderLayout());result=0;lastCommand= = ;start=true;display=new JTextField( 0 );display.setEditable(false);add(display, BorderLayout.NORTH);ActionListener insert=new InsertAction();ActionListener command=new CommandAction();panel=new JPanel();panel.setLayout(new GridLayout(4, 4));addButton( 7 , insert);addButton( 8 , insert);addButton( 9 , insert);addButton( , command);addButton( 4 , insert);addButton( 5 , insert);addButton( 6 , insert);addButton( * , command);addButton( 1 , insert);addButton( 2 , insert);addButton( 3 , insert);addButton( - , command);addButton( 0 , insert);addButton( . , insert);addButton( = , command);addButton( + , command);add(panel, BorderLayout.CENTER);}private void addButton(String label, ActionListener listener){JButton button=new JButton(label);button.addActionListener(listener);panel.add(button);}private class InsertAction implements ActionListener{public void actionPerformed(ActionEvent event){String input=event.getActionCommand();if (start){display.setText( );start=false;}display.settext(display.getText() + input);}}private class CommandAction implements ActionListener{public void actionPerformed(ActionEvent evt){String command=evt.getActionCommand();if (start){if (command.equals( - )){display.setText(command);start=false;}elselastCommand=command;}else{calculate(Double.parseDouble(display.getText()));lastCommand=command;start=true;}}}public double calculate(double x){if (lastCommand.equals( + )) result += x;else if (lastCommand.equals( - )) result -= x;else if (lastCommand.equals( * )) result *= x;else if (lastCommand.equals( )) result = x;else if (lastCommand.equals( = )) result=x;display.setText( + result);}private JTextField display;private JPanel panel;private double result;private String lastCommand;private boolean start;}
问答题
本程序的功能是将某个字符段在字符串中第一次出现替换为指定的字符串。窗口中有一个文本域、两个文本框和一个按钮,单击按钮后,第一个文本框中所填写的内容在文本域中字符串第一个出现的地方,将被第二个文本框中的内容替换,如图所示。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class exam_62{public static void main(String[] args){TextEditFrame frame=new TextEditFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.showJFrame();}}class TextEditFrame extends JFrame{public TextEditFrame(){setTitle( exam_62 );setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);Container contentPane=getContentPane();JPanel panel=new JPanel();JButton replaceButton=new JButton( Replace );panel.add(replaceButton);replaceButton.addActionListener(ReplaceAction());from=new JTextField( brown , 8);panel.add(from);panel.add(new JLabel( with ));to=new JTextField( purple , 8);panel.add(to);contentPane.add(panel, BorderLayout.SOUTH);textArea=new JTextArea(8, 40);textArea.setText( The quick brown fox jumps over the lazy dog. );JScrollPane scrollPane=new JScrollPane(textArea);contentPane.add(scrollPane, BorderLayout.CENTER);}public static final int DEFAULT_WIDTH=400;public static final int DEFAULT_HEIGHT=200;private JTextArea textArea;private JTextField from;private JTextField to;private class ReplaceAction implements ActionListener{public void actionPerformed(ActionEvent event){String f=from.GetText();int n=textArea.getText().indexOf(f);if (n >= 0 && f.length() > 0)textArea.replaceRange(to.getText(), n,n + f.length());}}}