Пользовательский интерфейс java swing

Самоучитель Java Swing: Как создать приложение с графическим интерфейсом на Java

Swing в Java — это инструментарий графического интерфейса пользователя (GUI), включающий компоненты GUI. Swing предоставляет богатый выбор виджетов и пакетов для создания изысканных компонентов GUI для Java-приложений.

Swing является частью Java Foundation Classes(JFC), который представляет собой API для программирования GUI на Java, обеспечивающий графический интерфейс пользователя. Библиотека Java Swing построена поверх Java Abstract Widget Toolkit (AWT), более старого, зависящего от платформы набора инструментов GUI. Вы можете использовать простые компоненты программирования графического интерфейса Java, такие как кнопки, текстовые поля и т.д., из библиотеки, и вам не придется создавать компоненты с нуля.

В этом учебнике по Java Swing вы узнаете основы Java GUI, такие как.

  • Что такое Swing в Java?
  • Что такое класс-контейнер?
  • Что такое графический интерфейс пользователя в Java?
  • Как создать графический интерфейс пользователя в Java на примере
  • Менеджер макетов Java
  • Java BorderLayout
  • Java FlowLayout
  • Java GridBagLayout

Иерархическая диаграмма классов Java Swing

Самоучитель Java Swing: Как создать приложение с графическим интерфейсом на Java

Иерархическая диаграмма классов Java Swing

Все компоненты в Java Swing являются JComponent, которые могут быть добавлены в контейнерные классы.

Что такое класс контейнер?

Классы-контейнеры — это классы, на которых могут располагаться другие компоненты. Поэтому для создания графического интерфейса Java Swing нам нужен хотя бы один объект-контейнер. Существует 3 типа контейнеров Java Swing.

  1. Панель: Это чистый контейнер, который сам по себе не является окном. Единственная цель панели — организовать компоненты на окне.
  2. Фрейм (Frame): Это полностью функционирующее окно с заголовком и значками.
  3. Диалог: Его можно представить как всплывающее окно, которое появляется, когда необходимо отобразить сообщение. Это не полностью функционирующее окно, как фрейм.
Читайте также:  Python sys recursion limit

Что такое графический интерфейс пользователя в Java?

GUI (графический интерфейс пользователя) в Java — это простой в использовании конструктор визуального восприятия для Java-приложений. Он состоит в основном из графических компонентов, таких как кнопки, ярлыки, окна и т.д., с помощью которых пользователь может взаимодействовать с приложением. GUI играет важную роль в создании простых интерфейсов для Java-приложений.

Как создать графический интерфейс пользователя в Java на примере

В данном учебнике по графическому интерфейсу Java, давайте разберемся, как создать графический интерфейс на Java на примере Swings.

Шаг 1) Скопируйте код в редактор
На первом этапе скопируйте следующий код в редактор.

Источник

Trail: Creating a GUI With Swing

This trail tells you how to create graphical user interfaces (GUIs) for applications and applets, using the Swing components. If you would like to incorporate JavaFX into your Swing application, please see Integrating JavaFX into Swing Applications.

Getting Started with Swing is a quick start lesson. First it gives you a bit of background about Swing. Then it tells you how to compile and run programs that use Swing components.

Learning Swing with the NetBeans IDE is the fastest and easiest way to begin working with Swing. This lesson explores the NetBeans IDE’s GUI builder, a powerful feature that lets you visually construct your Graphical User Interfaces.

Using Swing Components tells you how to use each of the Swing components — buttons, tables, text components, and all the rest. It also tells you how to use borders and icons.

Concurrency in Swing discusses concurrency as it applies to Swing programming. Information on the event dispatch thread and the SwingWorker class are included.

Using Other Swing Features tells you how to use actions, timers, and the system tray; how to integrate with the desktop class, how to support assistive technologies, how to print tables and text, how to create a splash screen, and how to use modality in dialogs.

Laying Out Components Within a Container tells you how to choose a layout manager, how to use each of the layout manager classes the Java platform provides, how to use absolute positioning instead of a layout manager, and how to create your own layout manager.

Modifying the Look and Feel tells you how to specify the look and feel of Swing components.

Drag and Drop and Data Transfer tells you what you need to know to implement data transfer in your application.

Writing Event Listeners tells you how to handle events in your programs.

Performing Custom Painting gives you information on painting your own Swing components. It discusses painting issues specific to Swing components, provides an overview of painting concepts, and has examples of custom components that paint themselves.

Although this is the main trail for learning about GUIs, it isn’t the only trail with UI-related information.

  • 2D Graphics, which describes the 2D graphics features available in the JDK.
  • Sound, which discusses the sound capabilities available in the JDK.
  • Java Applets, which describes API available only to applets.
  • Essential Java Classes, which covers many topics, including properties and the standard I/O streams.
  • The JavaFX Documentation, which describes how to build UIs with JavaFX.
  • The Bonus trail contains Full-Screen Exclusive Mode API, a lesson that describes how to use API introduced in v1.4 to render graphics directly to the screen.

Источник

Trail: Creating a GUI With Swing

This trail tells you how to create graphical user interfaces (GUIs) for applications and applets, using the Swing components. If you would like to incorporate JavaFX into your Swing application, please see Integrating JavaFX into Swing Applications.

Getting Started with Swing is a quick start lesson. First it gives you a bit of background about Swing. Then it tells you how to compile and run programs that use Swing components.

Learning Swing with the NetBeans IDE is the fastest and easiest way to begin working with Swing. This lesson explores the NetBeans IDE’s GUI builder, a powerful feature that lets you visually construct your Graphical User Interfaces.

Using Swing Components tells you how to use each of the Swing components — buttons, tables, text components, and all the rest. It also tells you how to use borders and icons.

Concurrency in Swing discusses concurrency as it applies to Swing programming. Information on the event dispatch thread and the SwingWorker class are included.

Using Other Swing Features tells you how to use actions, timers, and the system tray; how to integrate with the desktop class, how to support assistive technologies, how to print tables and text, how to create a splash screen, and how to use modality in dialogs.

Laying Out Components Within a Container tells you how to choose a layout manager, how to use each of the layout manager classes the Java platform provides, how to use absolute positioning instead of a layout manager, and how to create your own layout manager.

Modifying the Look and Feel tells you how to specify the look and feel of Swing components.

Drag and Drop and Data Transfer tells you what you need to know to implement data transfer in your application.

Writing Event Listeners tells you how to handle events in your programs.

Performing Custom Painting gives you information on painting your own Swing components. It discusses painting issues specific to Swing components, provides an overview of painting concepts, and has examples of custom components that paint themselves.

Although this is the main trail for learning about GUIs, it isn’t the only trail with UI-related information.

  • 2D Graphics, which describes the 2D graphics features available in the JDK.
  • Sound, which discusses the sound capabilities available in the JDK.
  • Java Applets, which describes API available only to applets.
  • Essential Java Classes, which covers many topics, including properties and the standard I/O streams.
  • The JavaFX Documentation, which describes how to build UIs with JavaFX.
  • The Bonus trail contains Full-Screen Exclusive Mode API, a lesson that describes how to use API introduced in v1.4 to render graphics directly to the screen.

Источник

Java Swing: знакомство

Начнём применять изученные приёмы и конструкции языка Java в создании простейших приложений. В этом нам поможет Java Swing, который реализует графический интерфейс пользователя..

Swing в Java — это инструментарий графического интерфейса пользователя (GUI), включающий компоненты GUI.

Swing предоставляет богатый выбор виджетов и пакетов для создания изысканных компонентов GUI для Java-приложений.

Java Swing — структура

Swing является частью Java Foundation Classes (JFC). JFC представляет собой API для программирования GUI на Java, обеспечивающий графический интерфейс пользователя.

Библиотека Java Swing построена поверх Java Abstract Widget Toolkit (AWT). Можно использовать простые компоненты программирования графического интерфейса Java:

из библиотеки, без необходимости создания данных компонентов с нуля.

Для создания графического интерфейса необходим хотя бы один объект-контейнер. Классы-контейнеры – это классы, на которых могут располагаться другие компоненты.

Существует три типа контейнеров Java Swing.

  1. Панель: Это чистый контейнер, который сам по себе не является окном. Единственная цель панели — разместить компоненты на окне.
  2. Фрейм (Frame): Это полностью функционирующее окно с заголовком и значками.
  3. Диалог: Его можно представить как всплывающее окно, которое появляется, когда необходимо отобразить сообщение. Это не полностью функционирующее окно, как фрейм.

Для начала реализуем простейший GUI непосредственно в главном методе main():

import javax.swing.*; // подключаем все средства java Swing public class Program < // класс с методом main() public static void main(String[] args) < JFrame frame = new JFrame("My First GUI"); // Для окна нужна "рама" - Frame // стандартное поведение при закрытии окна - завершение приложения frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); // размеры окна frame.setLocationRelativeTo(null); // окно - в центре экрана JButton button = new JButton("Press"); // Экземпляр класса JButton // getContentPane() - клиентская область окна frame.getContentPane().add(button); // Добавляем кнопку на Frame frame.setVisible(true); // Делаем окно видимым >>

Прежде чем двигаться дальше, разберёмся со структурой (минимальным набором элементов) окна:

Java Swing

Пора протестировать первое приложение. После запуска можно увидеть, что кнопка «Press» заполнила всю клиентскую область окна:

Java Swing

Как это исправить? Для этого служит менеджер компоновки. Он используется для компоновки (или расположения) компонентов GUI Java внутри контейнера. Существует множество менеджеров компоновки, но наиболее часто используемые из них — это BorderLayout, который размещает компоненты в пяти областях:

  • cверху (NORTH);
  • снизу (SOUTH);
  • слева (WEST);
  • справа (EAST);
  • по центру (CENTER).

Java Swing

Добавим ещё одну кнопку. Теперь их будет две. Первую переименуем в «Старт», а вторую назовём «Стоп»:

import java.awt.BorderLayout; // подключаем BorderLayout import javax.swing.*; // подключаем все средства java Swing public class Program < // класс с методом main() public static void main(String[] args) < JFrame frame = new JFrame("My First GUI"); // добавляем панель JPanel buttonsPanel = new JPanel(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); frame.setLocationRelativeTo(null); // окно в центре экрана JButton start = new JButton("Старт"); JButton stop = new JButton("Стоп"); // добавляем кнопки на панель buttonsPanel.add(start); buttonsPanel.add(stop); // размещаем панель на Frame (верхняя часть) frame.getContentPane().add(BorderLayout.NORTH, buttonsPanel); frame.setVisible(true); >>

Теперь две кнопки расположены рядом, в верхней части экрана:

Таким образом можно создавать нужное количество невидимых панелей и размещать (add) на них необходимое число компонентов. Впоследствии «крепить» панели на клиентскую область окна. Это подобно кнопочным панелям, размещённым на корпусе какого либо устройства:

Осталось разобраться с иконкой приложения и запретом (разрешением) изменения размеров окна.

Иконка GUI-приложений на Java Swing

Рассмотрим один из способов установки иконки в левый верхний угол окна приложения. Для начала нужно выбрать файл иконки в PNG-формате. Файл должен иметь одинаковые габариты по ширине и высоте. Желательно, чтобы размеры были кратные 16: 16×16, 32×32, 64×64, 128×128 и т.д. После помещения иконки в одну из папок проекта (в данном случае выше уровнем и в отдельной папке «images»):

При таком расположении файла иконки, код будет следующим:

import java.awt.BorderLayout; import javax.swing.*; // подключаем все средства java Swing public class Program < // Program - "главный" класс с методом main() public static void main(String[] args) < JFrame frame = new JFrame("My First GUI"); // задаём путь к иконке (т.е. где находится файл) String path = "../images/icon.png"; // создание через обращение к главному классу приложения и его ресурсам ImageIcon icon = new ImageIcon(Program.class.getResource(path)); // помещение иконки на frame frame.setIconImage(icon.getImage()); JPanel buttonsPanel = new JPanel(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); frame.setLocationRelativeTo(null); JButton start = new JButton("Старт"); JButton stop = new JButton("Стоп"); buttonsPanel.add(start); buttonsPanel.add(stop); frame.getContentPane().add(BorderLayout.NORTH, buttonsPanel); frame.setVisible(true); >>

При запуске, вместо стандартной иконки (чашка с кофе), в левом верхнем углу появится та, которая находится в файле «icon.png» (имя файла иконки может быть и другим — по Вашему усмотрению):

Фиксированный размер окна

При решении ряда задач бывает необходимым отключение возможностей изменения размеров окна приложения. В текущей реализации, при наведении курсора мыши на любой из краёв окна будет появляться двусторонняя стрелка. При нажатии и перемещении любого из краёв, размеры окна будут изменяться:

Чтобы сделать размер окна фиксированным можно вызвать метод контейнера JFrame setResizable():

.setResizable(false);

Эту строчку можно поместить сразу после строки с заданием геометрии окна. Полный код:

import java.awt.BorderLayout; import javax.swing.*; // подключаем все средства java Swing public class Program < // класс с методом main() public static void main(String[] args) < JFrame frame = new JFrame("My First GUI"); // задаём путь к иконке (т.е. где находится файл) String path = "../images/icon.png"; // создание через обращение к главному классу приложения и его ресурсам ImageIcon icon = new ImageIcon(Program.class.getResource(path)); // помещение иконки на frame frame.setIconImage(icon.getImage()); JPanel buttonsPanel = new JPanel(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // задание геометрии окна frame.setSize(300, 300); // запрет изменения размеров frame.setResizable(false); frame.setLocationRelativeTo(null); JButton start = new JButton("Старт"); JButton stop = new JButton("Стоп"); buttonsPanel.add(start); buttonsPanel.add(stop); frame.getContentPane().add(BorderLayout.NORTH, buttonsPanel); frame.setVisible(true); >> 

Теперь все элементы, отвечающие за изменение габаритов, стали неактивными:

Размеры окна поменять теперь нельзя. Однако, нажатие на кнопки пока не приводят ни к каким действиям. Реакцию на события рассмотрим в следующий раз.

Источник

Оцените статью