Изучаем Java

Вы здесь: Главная >> Java-учебник >> Графические приложения

Обучающие курсы:

Курс обучения профессии "Программист Java"

Графические приложения в Java


Графические приложения

Программа 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;

 

 


Партнеры сайта