Графические приложения
Программа Welcome не поражает воображение. Перейдем теперь к
графическому приложению. Это приложение представляет собой очень простую
программу для просмотра файлов в формате GIF, которая загружает и
отображает на экране GIF-файл. Как и прежде, сначала скомпилируем и
выполним это приложение в режиме командной строки.
1. Откройте окно оболочки. 2. Перейдите в каталог CoreJavaBook/v1ch2/ImageViewer. 3. Введите следующие команды: javac ImageViewer . java java ImageViewer
На экране появится новое окно, открытое нашим новым приложением ImageViewer (рис. 2.11).
Выберите опцию File -> Open и найдите файл с расширением GIF,
который вы хотите открыть. (Мы поместили в тот же каталог несколько
демонстрационных файлов.)
Рис. 2.11 Выполнение приложения ImageViewer
Чтобы завершить выполнение программы, щелкните на кнопке Close в
строке заголовка или откройте системное меню и закройте программ.
(Чтобы скомпилировать и выполнить эту программу в текстовом редакторе
или интегрированной среде, нужно сделать то же, что и прежде. Например,
при работе с текстовым редактором Emacs выберите опцию JDF, ->
Compile, а затем — опцию -> RunApp.)
Мы надеемся, что эта программа будет для вас интересной и полезной.
Просмотрите ее исходный текст. Эта программа существенно длиннее, чем
первая, однако она не кажется слишком сложной, если представить себе,
сколько строк кода на языке С или C++ нужно было бы написать, чтобы
создать такое же приложение.
Конечно, на языке Visual Basic такую программу написать легко,
пользуясь технологией "перетащить-и-опустить", — нужно лишь добавить
несколько строк, чтобы код стал функциональным. В состав пакета JDK не
входит визуальное средство для создания интерфейса, поэтому для всех
элементов нужно писать соответствующий код, как показано в листинге
2.2.
Изучив главы 7-9, вы сможете писать аналогичные графические программы.
Если вы попробуете выполнить эту программу, пользуясь версией пакета
Java SDK, предшествующей версии 1.4, при компиляции следующей строки
возникнет ошибка: frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
Закомментируйте эту строку и скомпилируйте программу снова. В этом
случае программа не прекратит работу при закрытии фрейма. Вместо этого
пользователь должен выбрать в меню опцию File -> Exit. Подробнее эта тема освещается в главе 7.
Листинг 2.2 Программа ImageViewer.Java
import java.awt.* import java.awt.event.* import java.io.* import javax.swing.* /** Программа для просмотра изображений. /* public class ImageViewer { public static void main(String[] args) { JFrame frame = new ImageViewerFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ; frame.show(); } } /** Фрейм с меткой для вывода изображения. /* class ImageViewerFrame extends JFrame { public ImageViewerFrame() { setTitle("Image Viewer"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // Для отображения изображений использовать метку, label = new JLabel ( ) ; Container contentPane = getContentPane ( ) ; contentPane.add(label); // Установка диалога для выбора файлов. chooser = new JFileOhooser ( ); chooser.serCurrentDirectory(new File ("."); // Установить строку меню. JMenuBar menubar = new JMenuBar(); setmenuBar(menuBar) ; Jmenu menu = new Jmenu("File"); MenuBar.add(menu); JMenuItem openltem = new JMenuItem("Open"); menu.add(openltem); openltem.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent: event) { // Вывести на экран диалог выбора файла, int r = chooser.showOpenDialog (null); // Если файл выбран, сделать его пиктограммой. If (r = = JFileChooser.APPROVE OPTION; {String name = chooser.getSelectedFile().getPath() label.setIcon(new ImageIcon(name)); } } } ) ; JMenuItem exitltem = new JMenuItem("Exit") menu.add(exitltem); exitltem.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent event) { System.exit(0) ; } private JLabel label; private JFileChooser chooser; private static final int DEFAULT WIDTH = 300; private static final int DEFAULT HEIGHT = 400;
|