Как в eclipse создать оконное приложение
В первой части будет рассмотрено создание простого окна с использованием JFace, добавление к нему меню, статусной строки и панели инструментов.
Настройка проекта
Для того, чтобы разрабатывать графические приложения с использованием JFace в Eclipse, необходимо подключить jar-файлы SWT и JFace.
- В случае, если в Eclipse установлено PDE, то это можно сделать, указав в настройках проекта использовать библиотеку SWT, и поставить галочку для поддержки JFace.
- Если же PDE не установлен, то необходимо подключить jar-файлы к проекту вручную. Найти их можно в директории plugins эклипса, называются они org.eclipse.swt_*.jar и org.eclipse.jface_*.jar
Создание окна
Окно приложения в JFace наследуется от класса ApplicationWindow, предоставляющего возможности для создания меню, панелей управления и строки статуса.
Простейший вариант создания окна приведен в следующем примере:
Создание содержимого окна
Для того, чтобы создать какое-то содержимое окна, необходимо переопределить метод Control createContents( Composite parent ) класса ApplicationWindow. Метод должен возвращать компонент, который будет являться содержимым окна.
В этом же методе можно установить и заголовок окна, вызвав метод setText( String text ) шелла, доступного по вызову getShell()
В этом примере таким компонентом будет просто метка белого цвета, в реальных приложениях таким компонентом является какой-нибудь композит.
Добавление статусной строки
Добавление к окну приложения статусной строки реализуется не просто, а очень просто. Для этого надо всего-навсего вызвать защищенный метод addStatusBar(). Наверное, наиболее подходящим местом для такого вызова является конструктор окна, или какой-нибудь метод его инициализации.
Для того, чтобы отобразить текст в статусной строке необходимо вызвать метод setStatus( String status ), аргументом которого и является та самая строка, которую необходимо отобразить.
Создание меню
Для создания строки меню в JFace необходимо, вызвать метод addMenuBar(), как и для создания строки статуса.
Но затем необходимо добавить пункты меню на панель. Осуществляется это следующим образом:
В следующем примере мы создаем раздел меню File и один пункт Hello в нем, выбор которого вызывает появление текста в статусной строке окна. Код создания меню я оформил в один метод, который вызывается из конструктора окна:
Создание панели инструментов
Для того, чтобы создать панель инструментов в окне необходимо в конструкторе окна вызвать метод addToolBar( int style ), в который передать стиль компонента панели.
Для доступа к созданной панели используется метод getToolBarManager(). Для добавления действия на панель используется метод add панели, куда передается действие.
В простейшем случае создание панели и добавление на нее кнопки будет выглядеть:
Создание нескольких перемещаемых панелей инструментов
Вместо одной панели инструментов можно создать набор перемещаемых панелей (CoolBar). Для этого необходимо:
- Вместо метода addToolBar вызвать метод addCoolBar
- Для доступа к набору панелей используется метод getCoolBarManager()
- Создать панель инструментов, на которую можно будет добавлять действия. Для этого необходимо создать новый экземпляр класса ToolBarManager, который будет представлять панель и вызвать метод add у CoolBarManager, передав туда панель.
- На созданную панель можно добавлять действия
Пример кода, создающего две плавающие панели:
Важно! Окно приложение может иметь или одну панель управления или набор перемещаемых, попытка создания и того и другого приведет к ошибке!
Возможные проблемы
Здесь будут описаны некоторые проблемы, с которыми можно столкнуться:
Ссылки
Дополнительная информация по JFace может быть найдена по следующим ссылкам:
На своем блоге я буду вести записи о трудностях в разработке на java и android,а так же статьи на полезную программную и компьютерную тематику.
воскресенье, 1 декабря 2013 г.
Первое оконное приложение
- Краткая теория про Swing и AWT.
- Обзор стандартных компонентов.
- Пишем первое приложение выводящее ваше имя.
- Ссылки для дополнительного чтения.
На счет AWT забыл упомянуть, это ранняя библиотека графических компонентов, её особенностью было то, что она имела ограничения в разработке интерфейса, то есть разработанный интерфейс под любой платформой, будет отображать лишь элементы которые есть в самой ОС, выходит, что, как бы, нету возможности создавать кастомные объекты. Так же есть возможность работы этих двух библиотек совместно, поскольку как говорилось ранее Swing построена на AWT. Разница между ними разве что в сложности построения (разработки) интерфейса.
- FlowLayout - используется для последовательного отображения элементов (если элемент не помещается в конкретную строку, он отображается в следующей);
- GridLayout - отображения элементов в виде таблицы с одинаковыми размерами ячеек;
- BorderLayout - используется при отображении не более 5 элементов (эти элементы располагаются по краям фрейма и в центре: North, South, East, West, Center);
- BoxLayout - отображает элементы в виде рядка или колонки;
- GridBagLayout - позволяет назначать месторасположение и размер каждого виджета. Это самый сложный, но и самый эффективный вид отображения;
Теперь возникает вопрос, как обрабатывать события, ну например нажатие кнопки?
Для этих случаев были разработаны такие классы как Java.util.java.awt и java.event.
Кратко говоря, система построена на слушателях событий и передатчиках событий (об этом отдельно напишу). Для отслеживания действий используется интерфейс ActionListener.
Вот, вроде бы немножко объяснил, что и к чему, теперь можно написать простенький пример. Напишем приложение, которое будет выводить ваше имя (говорить вам привет), написанное в поле ввода текста, и по нажатию кнопки покажет вам "привет (Вася,Петя,Саша)".
2.5 В вкладке General Purpose Tools выберите плагины как показано ниже на скрине5. Создав её можете поэкспериментировать с разработкой интерфейса, повставлять кнопочки и т.д.
6. Добавим в форму такой код:
Сегодня я вам расскажу, как поэтапно с нуля создать простое приложение на JavaFX, что для этого потребуется, покажу как сделать установщик Windows (msi) для вашего приложения.
Для начала нам потребуется среда разработки, будем использовать Eclipse, на данный момент самая последняя версия называется Neon (релиз 22 июня 2016 года) его можно скачать здесь.
Далее качаем инсталлятор, выбираем версию для Java разработчиков, будет предложен путь по умолчанию С:\Users\%USERNAME%\eclipse, экзешник будет лежать там в каталоге java-neon\eclipse.
После запуска Eclipse сразу будет предложено выбрать рабочую директорию, можно оставить дефолтную, только следите, чтобы путь до нее не содержал русских букв, в частности из-за %USERNAME%, иначе в дальнейшем могу возникнуть проблемы с этими путями. Если вы все-таки выбрали такую директорию в качестве рабочего пространства, не беда, ее можно поменять в последующем: File -> Switch Workspace -> Other…
Важно! Перед тем как приступать к созданию приложения, необходимо стандартно применяемую JRE без компилятора поменять на JDK. Подключим предварительно скачанную JDK и сделаем ее дефолтной: заходим в настройки Window->Preferences:
Выбираем стандартную виртуальную машину:
Указывает путь к директории на вашем компьютере, где лежит, предварительно скаченная версия JDK:
После нажатия на Finish, устанавливаем JDK как дефолтный:
Также укажем ее как дефолтную для JavaSE-1.8:
Теперь приступим к самому интересному, создадим новый проект JavaFX File->New->Project…
Настраиваем проект, думаю тут все очевидно:
Напишем наше небольшое приложение (в директории с Main.java должны лежать: иконка favicon-16x16.jpg и звук click.wav):
Отлично, теперь нам надо запаковать это приложения для конечного пользователя, в корневой директории лежит предназначенный для этого файл build.fxbuild, который генерирует xml файл, использующийся в свою очередь сборщиком Ant, настроим этот файл:
Запускаем Ant билд:
После сборки появится установщик msi, который можно запускать (приложение по дефолты ставится в C:\Program Files\HabrApp):
Эта стать-памятка про нативную сборку установочного файла средствами Eclipse, она не разбирает тонкостей JavaFx. Всем спасибо за внимание.
Каждое десктопное приложение должно иметь окно. В этом окне будут располагаться все необходимые компоненты графического интерфейса пользователя, посредством которых пользователь будет работать с приложением. Попробуем создать окно нашего приложения и разместить там что-нибудь. Пока что наше приложение будет простым и незамысловатым. Для создания окна приложения в Swing используется класс JFrame. Он содержит ряд методов и свойств, которые позволяют настроить его должным образом. Рассмотрим пример.
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TestFrame
frame.setPreferredSize(new Dimension(200, 100));
public static void main(String[] args) javax.swing.SwingUtilities.invokeLater(new Runnable() public void run() createGUI();
>
>);
>
>
Это самое простое Swing приложение. Данный код создаст приложение, внешний вид которого представлен на рисунке. Рассмотрим код более детально. Каждое приложение должно содержать статический метод main – точка входа приложения, именно с него начинается выполнение.
Далее выполняется создание графического интерфейса пользователя. Создание графического интерфейса пользователя непременно должно происходить в Event dispatch потоке. Для этого метод вызывается внутри определенного вида конструкции SwingUtilities. Перейдем к непосредственному созданию и размещению компонентов.
Самой первой строкой метода createGUI мы говорим системе, чтобы окно полностью рисовалось Swing. Если закомментировать этот код, то окно будет определяться самой операционной системой – Swing доверит рисовать окно ей. Далее создаем само окно и указываем текст, который будет располагаться в его заголовке. С помощью метода setDefaultCloseOperation мы говорим системе, как отреагировать на закрытие окна. Сейчас нам необходимо, чтобы при закрытии окна закрывалось и приложение. Для этого мы передаем параметр JFrame.EXIT_ON_CLOSE. Но когда-нибудь необходимо будет не закрывать приложение, а закрыть только окно и оставить выполняться его в фоновом режиме, тогда мы будем передавать этому методу другой параметр.
Далее создаем текстовый лейбл с помощью JLabel, указывая при этом какой текст мы хотим в нем видеть, и размещаем на форме. При размещении компонента в окне тоже есть одна хитрость. У объекта JFrame есть специальная панель content pane, на которой должны размещаться все остальные дочерние компоненты. С помощью вызова getContentPane мы получаем эту панель и добавляем лейбл уже на нее. Далее устанавливаем размер окна и показываем его пользователю.
Иногда история создания интернета интересна к прочтению. Можно много узнать о том, как создавали интернет.
Eclipse претендует на звание самой лучшей Java IDE, проверим это утверждение и создадим первый элементарный проект на языке программирования Java.
Приобретённые навыки впоследствии помогут вам научиться создавать в Eclipse IDE Java проекты любой сложности.
Запустим Eclipse SDK и убедимся, что открыта проекция Java. Подробно о проекциях и других особенностях интерфейса Eclipse читайте в статье об интерфейсе Eclipse.
Создание Java проекта
Заходим в главное меню "File" -> "New" -> "Java Project".
В открывшемся диалоговом окне введём имя проекта. Располагаться проект будет в директории, установленной как Workspace при настройке Eclipse.
Другие установки оставим как есть, при этом для выполнения проекта будет использоваться установленная по умолчанию в системе JRE и исходные файлы будут помещены в отдельную папку "src".
В следующем диалоге перейдём на вкладку "Libraries". Здесь пока ничего менять не будем, но запомним, что на этой вкладке можно добавить к проекту дополнительные Java библиотеки, а на данный момент к проекту подключён стандартный API, поставляемый с JRE. Создан пустой проект, для продолжения работы нужно добавить пакеты и классы. Можно сразу же приступить к созданию классов, тогда они будут располагаться в так называемом "пакете по умолчанию", но так делать крайне не рекомендуется. Помещайте все свои классы в пакеты.
Создадим пакет через контекстное меню. Кликнем правой кнопкой мыши на папке "src" и выберем "New" -> "Package". То же можно проделать, нажав кнопку "New Java Package" на панели инструментов.
В появившемся диалоге введём имя пакета, оно должно быть уникальным во избежание коллизий имён, как правило, разработчики инвертируют имя своего домена, вы тоже можете так поступить.
В данном примере выбрано случайное название "my.code.java", при этом наши исходные файлы будут располагаться по такому пути - [папка проекта]/src/my/code/java/[исходные файлы классов].
Как видим, к проекту добавлен новый пакет. Теперь создадим главный класс нашей программы, он должен быть public - общедоступный и сождержать функцию main - точку входа в программу.
Создадим класс через контекстное меню. Кликнем правой кнопкой мыши на пакете и выберем "New" -> "Class". То же можно проделать, нажав кнопку "New Java Class" на панели инструментов.
В диалоговом окне создания класса введём его имя, оно может быть любым, согласно правилам именования классов в Java.
Отметим опцию "public static void main(String[] args)", тем самым укажем IDE создать для нас одноимённую функцию.
Теперь справа мы видим структуру проекта и наш файл класса с расширением JAVA. По центру - исходный код класса, а справа - браузер классов, показывающий структуру пакетов и классов ввиде дерева.
На изображении ниже мы свернули представление "Outline", нажав клавишу "Minimize" на панели представления, освободив тем самым пространство для редактора.
Также включим отображение нумерации строк в редакторе, для этого кликнем правой кнопкой мыши в его левой области и в появившемся контекстном меню выберем пункт "Show Line Numbers".
Отредактируем исходный код, введём инструкцию для вывода строки на консоль - System.out.println("Ваша строка"); .
Не забываем пользоваться подсказками и автодополнением - начинаем вводить код и жмём Ctrl + Пробел.
Не забудьте завершить строку символом ";". Сохраняем изменения нажатием клавиш Ctrl + S.
Запуск Java проекта в Eclipse
Чтобы проверить работоспособность нашей программы, нажмём кнопку "Run" на панели инструментов или через главное меню. При первом запуске нужно выбрать, запускать программу как обычное приложение, или как апплет.
Выберите пункт "Java Application".
Наше первое консольное Java приложение будет скомпилировано и выполнено. В открывшемся представлении "Console" в нижней панели главного окна IDE мы увидим вывод программы, а именно - нашу строку.
Скомпилированные файлы классов с расширением CLASS, можно найти в папке с проектом -> "bin".
Читайте также: