Апплеты
Приведем более сложный пример. Апплет showwindow создает окно somewindow типа Frame, в котором расположено поле ввода типа TextFieid. В него вводится текст, и после нажатия клавиши Enter переносится в поле ввода апплета. В апплете присутствует кнопка. После щелчка кнопкой мыши по ней окно somewindow то скрывается с экрана, то вновь появляется на нем. То же самое должно происходить при уходе и появлении апплета в окне браузера в результате прокрутки, как записано в методах stop () и start (), но будет ли? Программа приведена в листингах 14.5 и 14.6, результат – на рис. 14.3.
Листинг 14.5. Апплет, создающий окно.
// Файл ShowWindow.java import java.awt.*; import java.awt.event.*; import java.applet.*; public class ShowWindow extends Applet{ private SomeWindow sw = new SomeWindow(); private TextField tf = new TextField(30); private Button b = new Button("Скрыть"); public void init(){ add(tf); add(b); sw.pack(); b.addActionListener(new ActShow()); sw.tf.addActionListener(new ActShow()); } public void start(){ sw.setVisible(true); } public void stop(){ sw.setVisible(false); } public void destroy(){ sw.disposeO; sw = tf = b = null; } public class ActShow implements ActionListener{ public void actionPerformed(ActionEvent ae){ if (ae.getSource() = sw.tf) tf.setText(sw.tf.getText()); else if (b.getActionCoiranand() == "Показать"){ sw.setVisible(true); b.setLabel("Скрыть"); } else{ sw.setVisible(false); b.setLabel("Показать"); } } } } class SomeWindow extends Frame{ public TextField tf = new TextField(50); SomeWindow(){ super(" Окно ввода"); add(new Label("Введите, пожалуйста, свое имя"), "North"); add(tf, "Center"); } }