Java -практика использования

       

Обработка события ActionEvent



Листинг 12.1. Обработка события ActionEvent 

import j ava.awt.*;

impo rt j ava.awt.event.*;

class MyNotebook extends Frame{ 

MyNotebook(String title) {

super(title);

TextField tf = new TextField("Вводите текст", 50);
 

add(tf, BorderLayout.NORTH);

TextArea ta = new TextArea();
 

ta.setEditable(false);
 

add(ta);

Panel p = new Panel();
 

add(p, BorderLayout.SOUTH);

Button b = new Button("Перенести");
 

p.add(b);

tf.addActionListener(new TextMove(tf, ta));
 

b.addActionListener(new TextMove(tf, ta));

setSize(300, 200);
setvisible(true);
 

public static void main(String[] args){

Frame f = new MyNotebook(" Обработка ActionEvent");
 

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);
 

}

});
 

}

// Текст класса TextMove 

// ...

На Рисунок 12.2 показан результат работы с этой программой.

В листинге 12.1 в методах addActionListener() создаются два экземпляра класса TextMove — для прослушивания поля tf и для прослушивания кнопки ь. Можно создать один экземпляр класса TextMove, он будет прослушивать оба компонента:

TextMove tml = new TextMove(tf, ta);
 

tf.addActionListener(tml);
 

b.addActionListener(tml);

Но в первом случае экземпляры создаются после наступления события в соответствующем компоненте, а во втором — независимо от того, наступило событие или нет, что приводит к расходу памяти, даже если событие не произошло. Решайте сами, что лучше.



Содержание раздела