- Как создать графический интерфейс на Java
- Подключение библиотеки Swing
- Создание окна
- Добавление компонентов
- Обработка событий
- Java/Первое окно
- Начнем с простого [ править ]
- Делаем что-то полезное [ править ]
- Дизайн [ править ]
- Скелет программы [ править ]
- Добавляем функциональность [ править ]
- addCrow [ править ]
- removeCrow [ править ]
- updateCrowCounter [ править ]
- Конечный результат [ править ]
- Шаг №45. Создаем оконное приложение на Java для логгера
Как создать графический интерфейс на Java
Изучите основы создания графического интерфейса на Java с использованием библиотеки Swing в нашей доступной и информативной статье!
Создание графического интерфейса является важным аспектом любого приложения, поскольку это позволяет пользователям взаимодействовать с программой. В этой статье мы рассмотрим основы создания графического интерфейса на Java с использованием библиотеки Swing.
Подключение библиотеки Swing
Для начала работы с Swing вам нужно импортировать соответствующие пакеты. Вот основные пакеты, которые вы должны импортировать в своем коде:
import javax.swing.*; import java.awt.*;
Создание окна
Первым шагом в создании графического интерфейса является создание окна приложения. В Swing это делается с помощью класса JFrame . Вот пример создания окна:
Здесь мы создаем объект JFrame с заголовком «Мое первое окно», устанавливаем операцию закрытия окна (выход из приложения), размер окна и делаем его видимым.
Добавление компонентов
Теперь, когда у нас есть окно, мы можем добавить в него различные компоненты, такие как кнопки, текстовые поля и метки. Вот пример добавления кнопки и метки на окно:
Здесь мы создали объекты JButton и JLabel и добавили их на окно с использованием менеджера компоновки BorderLayout .
Обработка событий
Чтобы сделать ваш интерфейс интерактивным, необходимо обрабатывать события, такие как нажатие кнопок или ввод текста. Для этого вы можете использовать интерфейс ActionListener . Вот пример обработки нажатия кнопки:
Здесь мы добавили ActionListener к кнопке и использовали лямбда-выражение для обработки события нажатия кнопки. В результате появляется диалоговое окно с сообщением «Кнопка нажата!».
В заключение, создание графического интерфейса на Java с использованием библиотеки Swing включает в себя несколько основных этапов: подключение библиотеки, создание окна, добавление компонентов и обработка событий. Надеюсь, что эта статья помогла вам разобраться с основами создания графических интерфейсов на Java. Удачи вам в изучении и практике! 😉
Java/Первое окно
Так как в большинстве своем сегодняшние начинающие программисты не любят окно командной строки — приведу пример оконного приложения.
Начнем с простого [ править ]
import javax.swing.JFrame; public class MyWindowApp extends JFrame //Наследуя от JFrame мы получаем всю функциональность окна public MyWindowApp() super("My First Window"); //Заголовок окна setBounds(100, 100, 200, 200); //Если не выставить //размер и положение //то окно будет мелкое и незаметное setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //это нужно для того чтобы при //закрытии окна закрывалась и программа, //иначе она останется висеть в процессах > public static void main(String[] args) //эта функция может быть и в другом классе MyWindowApp app = new MyWindowApp(); //Создаем экземпляр нашего приложения app.setVisible(true); //С этого момента приложение запущено! > >
Вот у нас и получилось ничего не делающее приложение!
Делаем что-то полезное [ править ]
Это конечно замечательно уметь показывать пустое окно, но мы хотим, чтобы оно приносило пользу! Создадим форму для подсчета ворон на заборе. Для этого будем отображать текущее количество ворон и с помощью двух кнопок добавлять или вычитать по одной.
Дизайн [ править ]
Это то, что мы примерно хотим увидеть:
Вороносчет | |
Ворон на заборе : 666 | |
Ворона прилетела | Ворона улетела |
Скелет программы [ править ]
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class VoronCalc extends JFrame private int voron = 0; private JLabel countLabel; private JButton addCrow; private JButton removeCrow; public VoronCalc() super("Crow calculator"); //Подготавливаем компоненты объекта countLabel = new JLabel("Crows:" + voron); addCrow = new JButton("Add Crow"); removeCrow = new JButton("Remove Crow"); //Подготавливаем временные компоненты JPanel buttonsPanel = new JPanel(new FlowLayout()); //Расставляем компоненты по местам buttonsPanel.add(countLabel, BorderLayout.NORTH); //О размещении компонент поговорим позже buttonsPanel.add(addCrow); buttonsPanel.add(removeCrow); add(buttonsPanel, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); > public static void main(String[] args) VoronCalc app = new VoronCalc(); app.setVisible(true); app.pack(); //Эта команда подбирает оптимальный размер в зависимости от содержимого окна > >
После компиляции и запуска — получится что-то такое:
Добавляем функциональность [ править ]
Пришло время добавить немного интерактивности. Нам нужно сделать 3 вещи:
- Научить кнопку addCrow добавлять 1 к переменной voron.
- Научить кнопку removeCrow вычитать 1 из переменной voron.
- Научить countLabel — обновлять свое значение в зависимости от содержимого переменной voron.
addCrow [ править ]
Добавляем listener для кнопки addCrow.
addCrow.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) voron = voron+1; //Добавляем одну ворону countLabel.setText("Crows:" + voron); //Сообщаем приложению, что количество ворон изменилось > >);
removeCrow [ править ]
Добавляем listener для кнопки removeCrow.
removeCrow.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if( voron > 0 ) voron = voron - 1; countLabel.setText("Crows:" + voron); //Сообщаем приложению, что количество ворон изменилось > > >);
updateCrowCounter [ править ]
private void updateCrowCounter() countLabel.setText("Crows:" + voron); >
Конечный результат [ править ]
Шаг №45. Создаем оконное приложение на Java для логгера
Всем привет. Как Вы помните в предыдущей статье мы перешли на язык Java для написания небольших приложений по обработки данных, на компьютере, полученных с устройств на микроконтроллере. Также мы условились, что дальнейший материал требует знание начального уровня java. Если его нет, то не расстраивайтесь, самые основы похожи на Си, но объектно-ориентированную часть придется подучить. Литературу я приводил в предыдущей статье.
Итак приступим. Сегодня мы создадим оконное приложение (кнопка и текстовое поле) используя фреймворк awt. Также добавим код обработки событий по нажатию на кнопку и закрытия окна. Хочется сказать о том что вариантов написания кода — много, и с помощью какой библиотеки и как создавать приложение решать только Вам. В дальнейшем мы будем работать с данным языком проектируя Android-приложение под умный дом. Ниже приведен код, который выполняет выше описанную задачу.
import java.awt.*; /*Подключаем библиотеку для создания апплетов и независимых
приложений с графическим интерфейсом.*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class logWindow extends Frame < /*Создаем подкласс logWindow класса Frame*/
public logWindow () /*Конструктор класса*/
<
super («Логгер»); /*Вызываем конструктор суперкласса и передаем ему параметр, в данном случае имя программы*/
setSize (200,200); /*Метод суперкласса для установкиразмеров окна, в пикселях*/
//Создаем объекты
Button myButton = new Button («Мониторинг»); /*Создаем кнопку и надпись на ней*/
Label myLabel = new Label («Данные логгера»); / Создаем текстовое поле и надпись в нем*/
add (myLabel, BorderLayout.NORTH); /* С помощью менеджера размещения, располагаем текстовое поле в северной части окна*/
add (myButton, BorderLayout.SOUTH); /*Кнопку в южной части*/
myButton.addActionListener (new ActionListener () < /*Для кнопки выбираем событие слушателя, и создаем новое событие в скобках.*/
public void actionPerformed (ActionEvent e) <
myLabel.setText («Мониторинг»); /*Выполняется действие, т.е. при нажатии на кнопку в поле выводится сообщение «Мониторинг» */
>
>);
>
public static void main (String[] args) < //Точка входа программы
logWindow log = new logWindow (); //Создаем объект класса
log.setVisible (true); //Устанавливаем видимость окна
/*Наше окно запускается и отображается, при нажатии на кнопку меняется надпись в текстовом поле. Что бы закрыть окно необходимо добавить код обработки события, который работает следующим образом: мы вызываем для объекта log метод addWindowListener для того, чтобы назначить слушателя оконных событий. В качестве параметра создаем объект абстрактного класса WindowAdapter, в котором создаем класс и переопределяем метод для обработки события закрытия окна — dispose.*/
log.addWindowListener (new WindowAdapter () <
public void windowClosing (WindowEvent e) < // в качестве аргумента передаем событие
e.getWindow ().dispose (); // уничтожает объект Frame
>
>);
>
>
Слева на рисунке внешний вид нашего простого оконного приложения на java. На данный момент нас устроит простое меню с одной кнопкой для дальнейших экспериментов. В следующей статье мы научимся мониторить COM — порт, для приема информации с наших устройств, в данном случае такой же строки, которую мы вывели на терминал в статье №42.
Выше использовалась библиотека awt для построения графического интерфейса. Н иже пример разработки приложения с использованием JavaFX и интеграцию в него в качестве FrontEnd SVG c javascript — ом. Скрины приложения ниже. Полный код по ссылке на GitHub :
Справа скрин анимированного splash screen for java application. Использование заставки с применением JavaFX , SVG c javascript — ом.
Ниже скрин самого приложения с графическим интерфейсом. Описание программы в статье Java Collection for diagnostic software. Step №109 . Полный код по ссылке выше.