Мои первые шаги в SWT: Простенький блокнот со вкладками
На Хабрахабре очень мало статей о SWT, поэтому я постараюсь исправить данное маленькое упущение.
Преамбула
Как известно, Java славится своей кросс-платформенностью (write-once — run anywhere), и к GUI приложениям это тоже относится. Хотя, пожалуй, Java и не самая распространненная платформа для написания GUI приложений. И на то есть ряд причин.
Пожалуй основная причина тому — убеждение, что код написанный под какую-то конкретную платформу будет работать быстрее, нежели код, который написан для чего-то абстрактного в вакууме. Что ж, на мой взгляд пожалуй это правда.
Некоторые со мной не согласятся и скажут, что это как раз стиль Java — написанное единожды должно исполняться и выглядеть одинаково на всех платформах. И Swing тому хорошее подтверждение. Конечно же Swing приложение можно кастомизировать с помощью различных тем(Look And Feel) но все равно оно будет чувствоваться и выглядеть не совсем так, как родное.
Хотя ребятам из JetBrains и удалось доказать (по крайней мере мне лично), что Swing приложения могут быть очень-даже дружелюбными, но факт остается фактом — оно начинает со временем тормозить не потому что написано плохо, а именно в силу того, что в качестве GUI фреймворка используется Swing, который с операционными системами дружит несколько хуже чем их нативные компоненты.
SWT как раз подошел с другой стороны к этой проблеме. По большому счету SWT — это тонкая прослойка между Java программистом и нативными API какой-то конкретной операционной ситемы, что несколько наршует идеологию Java. Но, как говорится, правила как раз и существуют для того, что бы их нарушать. Особенно, если это идет на благо. И это на мой взгляд является основной мотивацией, почему стоит обратить внимание на SWT.
Первые шаги
Думаю что бы читателю было понятнее, мне стоит рассказать, чего я хотел добиться от своего блокнота.
Задуммка была весьма проста:
Я хотел сделать подобие классического блокнота, того что мы наблюдаем под Windows. Только со вкладками.
Забегая вперед скажу, что я это не полностью реализовал свою идею — отстутствуют возможности посылать документ принтеру на печать, возможность менять шрифт, поиск по документу. Но, то что получилось, позволило почувствовать «вкус SWT», который окалазся довольно-таки приятным.
Ну что же. Пока что было только много слов, но никаких действий. Пора привести немножко кода.
Точка входа в приложение, это(Bootstrap.java):
Проинициализировали оболочку (TextEditor.java):
В кратце процесс создания меню:
И запускаем наше приложение:
Далее, во время выполнения нашего блокнота, сработает какой-то из слушателей (в ответ на какое-то наше действие), из которого мы сделаем то, что нам нужно, допустим запустим какое-то задание в синхронном или в асинхронном режиме:
Упаковка
Очередная порция псевдо-трудностей с которой я столкнулся:
Для каждой операционной системы и архитектуры нужно сделать свой билд. Для этого нужны jar’ы для каждой конкретной платформы. Я привык пользоваться Maven’ом, но для этих целей он не очень хорошо подходит, ибо свежих версий SWT я увы не нашел в Maven-репозиториях, да и пришлось скачивать мануально пакеты для каждой из платформ операционных систем/архитектур. Кроме того там где нужно много кастомизации Maven не особо подходит, зато на помощь приходит старый-добрый Ant. В качестве менеджера зависимостей я взял Ivy.
Кусок ant-скрипта(build.xml), отвечающий за упаковку под конкретную операционную систему/архитектуру:
Размер Jar’ов получился 2 — 2.5 МБ (в зависимости от ОС и архитектуры), что вообщем-то не так уж и много.
Вместо заключения
Пропустив через себя небольшой цикл разработки я могу заметить
Минусы SWT на мой взгляд:
* Мало документации/туториалов
* Гугл не так много знает о SWT, как о Swing
* Многие проблемы приходится решать дольше.
Плюсы SWT на мой взгляд:
* В общем и целом простой и понятный API
* Кросс-платформенное, нативно выглядящее приложение
* Из коробки быстрее работающее, чем такое же на Swing
Что я вынес для себя из этого маленького эксперимента?
SWT со всеми своими прелестями и недостатками произвел на меня приятное впечатление. Когда я в следующий раз решусь написать десктопное приложение — я без сомнения выберу связку Java + SWT.
P.S. Несколько скриншотов напоследок.
Нативная прокрутка для Ubuntu (Unity)
Нативное меню для Ubuntu (Unity)
Под Mac OS к сожалению скриншотов нет за неимением Mac OS X.
Любезно предоставленный скриншот пользователем seneast:
Буду рад любым комментариям, нареканиям и советам.
Первая программа – Hello, World!
В этом уроке вы напишите свою первую программу на Java! Для этого вам потребуется компилятор Java из набора JDK (набор инструментов разработки). Если вы ещё не установили JDK, вы можете это сделать, прочитав наш предыдущий урок.
Что вам понадобится
Для первой программы на Java потребуется следующее:
Исходный код
Исходный код программы – это код на каком-либо языке программирования. В нашем случае это язык программирования Java. Программисты пишут исходный код, который понятен им и компилятору. Затем компилятор преобразует исходный код программы в байт код, который понятен виртуальной машине Java (Java Virtual Machine, JVM). JVM это среда выполнения программ, скомпилированных в виде байт кода.
Рекомендую создать отдельную директорию для ваших исходников. Далее в тексте будет использоваться директория C:\Java\first
Исходный код Java программ содержится в файлах с расширением .java. В этих файлах хранятся классы Java. Давайте напишем свой первый класс:
Здесь мы объявили класс HelloWorld, указали в нём точку входа (метод main) и скомандовали вывести в консоль строку «Hello, World!».
Сохраните этот исходник в файле с названием HelloWorld.java. Будьте внимательны: название файла должно совпадать с названием класса, а расширение должно быть .java.
Теперь откройте консоль (нажмите комбинацию Win+R и укажите cmd):
В открывшейся консоли перейдите в каталог с исходниками:
Теперь нам требуется скомпилировать исходный код в байт код.
Компилирование
Давайте укажем компилятору Java, что нам требуется скомпилировать исходный код в файле HelloWorld.java:
Компилятор javac должен молча отработать и скомпилировать наш исходный код.
Успешным результатом компилирования будет создание нового файла HelloWorld.class в папке с исходником:
Выполнение программы
Давайте же наконец запустим нашу первую программу!
Выполните в консоли следующую команду:
Здесь мы запускаем на выполнение наш класс HelloWorld. Обратите внимание, что при запуске программы на выполнение не требуется указывать расширения файлов, так как указывается именно название класса (не файла).
Если вы увидели надпись «Hello, World!», поздравляю, значит, у вас всё получилось и программа корректно выполнилась!
Резюме
В этом уроке вы научились компилировать первую программу с помощью компилятора javac и запускать её на выполнение с помощью виртуальной машины java. В следующих уроках вы узнаете, из чего состоят классы Java.
Как написать блокнот на java
В этом уроке мы создадим нашу первую программу на языке Java.
Создание приложения на языке Java состоит из трех следующих шагов:
Создание исходного файла
Итак, открываем текстовый редактор и пишем в нем код программы Hello World, цель которой — вывод на экран сообщения Hello World!
Если вы пользуетесь Notepad++ то нужно выбрать Тип файла:Java source file (*.java)
Будьте внимательны! файл должен называться в точности так, как называется наш класс — HelloWorld. Так же важно учитывать регистр букв. HelloWorld и helloworld в данном случае это разные слова!
Компиляция исходного файла
Исходный файл с кодом программы создан, теперь перейдем к компиляции. Для компиляции Java предназначен компилятор javac, который входит в состав установленного нами в первом уроке пакета JDK.
Для того, чтобы скомпилировать исходный файл, открываем командную строку. Для этого в меню Windows Пуск в строке поиска вводим команду cmd и жмем Enter. После этого откроется командное окно.
Теперь в нем нужно изменить текущий каталог на тот, в котором находится наш исходный файл (например C:\studyjava\). Для этого вводим следующую команду:
После того, как директория изменилась, вводим команду компиляции
После этого, окно командной строки должно выглядеть следующим образом (рис 2.2):
То есть, мы не получим никакого подтверждения, о том, что программа скомпилировалась успешно. Однако, в папке с нашим исходным файлом, должен появиться файл HelloWorld.class. Это можно проверить с помощью команды
Эта команда выводит на экран список всех файлов, находящихся в выбранной директории (рис 2.3).
Если файл HelloWorld.class присутствует в этом списке, то это значит, что программа скомпилировалась успешно.
Если в коде программы есть ошибка, то компилятор Java при компиляции нам об этом сообщит.
Проведем эксперимент: Откроем в текстовом редакторе наш файл HelloWorld.java и удалим последнюю закрывающуюся фигурную скобку «>». Сохраним файл и попробуем его еще раз скомпилировать. В итоге получаем сообщение об ошибке (рис 2.4).
Чтобы исправить ошибку, нужно вновь открыть файл для редактирования, устранить ошибку, сохранить файл и еще раз его скомпилировать.
Запуск программы
Переходим к последней стадии — запуску программы.
Вводим в командном окне:
и если все перед этим было сделано правильно, то получаем результат — вывод сообщения «Hello World!» (рис 2.5).
Еще раз обратите внимание на чувствительность к регистру в Java. Если вы напишете helloworld вместо HelloWorld, то программа запущена не будет, потому что Java попросту не найдет файл с таким именем.
В качестве домашнего задания можете поэкспериментировать и выводить на экран какое-либо свое сообщение вместо Hello World!.
Русские Блоги
Используйте Блокнот для разработки первой Java-программы
Первый шаг: написание
Введите наш программный код в текстовое поле
Здесь поговорим о структуре программного кода Java
Это программный код, который мы только что ввели, и его грамматическая структура выглядит следующим образом:
В процессе написания java-программ необходимо строго использовать спецификации java-программ. Точный ввод каждой строки кода в соответствии со спецификациями является одним из самых основных стандартов навыков для программиста.
Шаг 2: компилировать
Запустите cmd с ключом win + R, откройте командную строку, найдите букву диска и папку, в которой находится файл Hello.java. (Номер диска +: вы можете напрямую ввести соответствующий диск, например E :, путь к файлу cd, вы можете открыть соответствующую папку)
Введите команду javac Hello.java и нажмите Enter.
Это файл с байт-кодом, который может быть выполнен программой java.exe.
Кстати, процесс компиляции java-программы
Наконец, JVM платформы времени выполнения java перекомпилирует файл байт-кода в двоичный машинный язык, который может быть распознан аппаратным обеспечением компьютера и выводом.
Как показано на рисунке:
Введите команду java Hello и нажмите Enter.
Эффект вывода показан на рисунке, так что простейшая java-программа от записи до выполнения завершена.
Русские Блоги
Настройте среду разработки Java и используйте Блокнот, чтобы написать первую и простейшую программу Java.
Чтобы писать программы на Java, вам необходимо создать среду разработки Java, поэтому сначала необходимо загрузить Sun Java SDK.
Может достигать официальный сайт оракула http://www.oracle.com Скачать соответствующий JDK ,Дважды щелкните и следуйте подсказке установка
После установки вам необходимо настроить переменные среды
1. Новое имя переменной: JAVA_HOME Значение переменной: «C: \ Program Files \ Java \ jdk1.7.0_25» (установленный адрес jdk)
2. Новое имя переменной: PATH Значение переменной: «C: \ Program Files \ Java \ jdk1.7.0_25 \ bin;% JAVA_HOME% \ bin»
(Примечание: если в системной переменной уже есть элемент PATH, нажмите Edit для ввода, Разделите два пути английской точкой с запятой )
3. Новое имя переменной: CLASSPATH Значение переменной: «.;% JAVA_HOME% \ lib;% JAVA_HOME% \ lib \ tools.jar»
Затем вы можете использовать блокнот txt, чтобы написать небольшую программу, чтобы попробовать, сначала напишите небольшую программу helloworld для тестирования
public static void main(String[] args)
Запустить окно DOS
1. Сначала найдите расположение файла: Введите d: нажмите Enter; затем введите cd program и нажмите Enter.
2. Скомпилируйте программу test.java: Введите javac test.java и нажмите Enter. Если сообщение об ошибке отсутствует и в папке появляется файл test.class, компиляция завершена.
3. Запускаем: Введите java test (а именно имя файла, без суффикса java на данный момент), в окне DOS появится HELLO WORLD!