Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
FileDialog fd = new FileDialog(parent, "Save file", FileDialog.SAVE);
fd.setVisible(true);
System.out.println(fd.getDirectory()+"/"+fd.getFile());
}
}
Конструктор класса требует в качестве параметра ссылку на оодительский фрейм, без которого не удастся создать FileDialog. В методе actionPerformed класса ActionListener описываются действия, которые необходимо предпринять по нажатию пользователем на кнопку. А именно, (открывается файловый диалог, с помощью которого определяется путь сохранения файла. Для нашего примера достаточно вывести этот путь на консоль.
Следующий шаг - регистрация слушателя. Название соответствующего метода снова прямо следует из названия интерфейса - add Action Listener.
save.addActionListener(new SaveButtonListener(frame));
Все необходимое для обработки нажатия пользователем на кнопку сделано. Ниже приведен полный листинг программы:
import Java.awt.*; import Java.awt.event.*;
public class Test {
public static void main(String args[]) { Frame frame = new Frame("Test Action"); frame.setSize(400, 300); Panel p = new Panel(); frame.add(p);
Button save = new Button("Save"); save.addActionListener(new SaveButtonListener(frame)); p.add(save);
frame.setVisible(true);
}
}
class SaveButtonListener implements ActionListener { private Frame parent;
public SaveButtonListener(Frame parentFrame) { parent = parentFrame;
public void actionPerformed(ActionEvent e) {
FileDialog fd = new FileDialog(parent, "Save file",
FileDialog.SAVE); fd.setVisible(true);
System.out.println(fd.getDirectory()+fd.getFile());
}
После запуска программы появится фрейм с одной кнопкой "Save" Если нажать на нее, откроется файловый диалог. После выбора файла на консоли отображается полный путь к нему.
Наряду с методом addXXListener важную роль играет fernoveXXListener. Поскольку в Java ненужные объекты удаляются из памяти автоматическим сборщиком мусора, который подсчитывает ссылки на объекта важно следить за тем, чтобы не оставалось ссылок на ненужные объекты, рели слушатель уже выполнил свою роль и более не нужен, то явно в программе может не остаться ссылок на него, однако компонент будет хранить его в своем списке слушателей. Чтобы дать сработать garbage collector, необходимо воспользоваться методом removeXXListener.