Разное

Java swing для чайников: #20 – Построение ПК приложений. Java Swing JFrame

#20 – Построение ПК приложений. Java Swing JFrame

До этого мы создавали лишь консольные проекты. В ходе урока мы разработаем полноценное приложение, что будет содержать различные объекты, по типу: кнопок, надписей, полей и так далее. Мы создадим программу под ПК на основе библиотеки Java Swing.

Для создания графического интерфейса на Java существует несколько библиотек. Мы с вами рассмотрим библиотеку Swing, которая является одной из самых популярных библиотек и позволяет создавать полноценные оконные приложения на языке Java.

Создание приложения

Создание нового окна необходимо делать в отдельных файлах, а в основном классе лишь запускать нужное окно. Поэтому, изначально создайте файл и назовите его: SimpleGUI.

Для работы с библиотекой необходимо импортировать классы, что позволят не только создавать графический дизайн, но также отслеживать различные нажатия на кнопки и выполнять действия после нажатия.

import java. awt.*;
import java.awt.event.*;
import javax.swing.*;

Чтобы работать со многими методами, наш основной класс должен наследовать всё от класса с названием JFrame.

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

  • JLabel — класс для создания объекта с надписью; 
  • JTextField — класс для создания текстового поля; 
  • JButton
    — класс для создания кнопки; 
  • JCheckBox — класс для создания кнопки-галочки;
  • JRadioButton — класс для создания кнопок выбора.
Разработка проекта

В Swing используются контейнеры «Container» для группировки нескольких элементов в одну форму. Перед созданием контейнера необходимо установить: название окна, его размеры и координаты (x, y, w, h), а также установили операцию при закрытии окна.

Далее создается объект на основе класса Container и прописывается метод getContentPane (). Данный метод возвращает контейнер верхнего уровня, в который помещаются все остальные объекты на окне.

Для размещения объектов стоит выбрать какой-либо слой. В уроке был использован слой GridLayout, что позволяет располагать объекты в формате сетки или же таблицы.

Добавление элементов

После создания контейнера и основного слоя, можно добавлять элементы. Все элементы создаются на основе классов, что были рассмотрены в самом начале: JLabel, JButton и так далее. Чтобы добавить элемент в контейнер используется метод add, а в качестве параметра выступает элемент, что добавляется.

Для создания выбора между radio кнопками необходимо объединить их в общую группу, таким образом переключаясь между ними они будут работать корректно.

Для отслеживания событий используется интерфейс «ActionListener». Создаем класс с реализацией интерфейса и выполняем обработку действий пользователя:

class ButtonEventListener implements ActionListener {
	public void actionPerformed (ActionEvent e) {
	}
}

Внутри метода «actionPerformed» (действие выполнено

) прописывается любой код, что должен сработать по нажатию на кнопку.  

В программе что мы создавали мы прописали получение данных из полей формы и вывод данных в новом окне. Чтобы взять данные из поля необходимо использовать метод «getText» для нужного вам поля: input.getText().

Для создания всплывающего окна мы использовали класс «JOptionPane», в который поместили: объект, сообщение, название и тип диалогового окна.

Остается все это вызвать с основного класса. В основном классе мы создаем объект на основе класса, что мы создавали и вызываем метод для отображения окна с параметром true: app.setVisible(true).

Введение в Java Swing

Главная » Программирование и разработка

Программирование и разработка

На чтение 6 мин Просмотров 87 Опубликовано

Swing — это библиотека Java Foundation Classes JFC] и расширение набора инструментов Abstract Window [AWT]. Swing предлагает значительно улучшенную функциональность по сравнению с AWT, новые компоненты, расширенные функции компонентов, отличную обработку событий с поддержкой перетаскивания.

Содержание

  1. Введение в Java Swing
  2. Особенности свинг-класса
  3. Иерархия классов Swing
  4. Компоненты Swing Classпроцент задачи

Введение в Java Swing

Swing содержит примерно в четыре раза больше компонентов пользовательского интерфейса [U1], чем AWT, и является частью стандартного дистрибутива Java. Согласно сегодняшним требованиям к графическому интерфейсу приложений, AWT является ограниченной реализацией, не вполне способной предоставить компоненты, необходимые для разработки сложных графических интерфейсов, требуемых в современных коммерческих приложениях. Набор компонентов AWT имеет довольно много ошибок и действительно требует много системных ресурсов по сравнению с эквивалентными ресурсами Swing. Netscape представила свою библиотеку Internet Foundation Classes [IFC] для использования с Java. Его классы стали очень популярны среди программистов, создающих графический интерфейс для коммерческих приложений.

  • Swing — это набор API (API-набор классов и интерфейсов)
  • Swing предназначен для разработки графических пользовательских интерфейсов
  • Swing — это библиотека расширения для AWT (Abstract Window Toolkit).
  • Включает новые и улучшенные компоненты, улучшающие внешний вид и функциональность графического интерфейса.
  • Swing можно использовать для создания (разработки) автономных приложений с графическим интерфейсом Swing, а также в виде сервлетов и апплетов.
  • Он использует архитектуру проектирования модель/представление
  • Swing более портативный и гибкий, чем AWT. Swing построен на основе AWT.
  • Swing полностью написан на Java
  • Компоненты Java Swing не зависят от платформы, а компоненты Swing легковесны.
  • Swing поддерживает внешний вид Pluggable, а Swing предоставляет более мощные компоненты.
  • такие как таблицы, списки, области прокрутки, средство выбора цвета, панель вкладок и т. д.
  • Дальнейшее качание следует за MVC

Многие программисты думают, что JFC и Swing — это одно и то же, но это не так.

JFC содержит Swing [пакет компонентов пользовательского интерфейса] и ряд других элементов:

  • Вырезать и вставить: поддержка буфера обмена
  • Специальные возможности: направлен на разработку графического интерфейса для пользователей с ограниченными возможностями.
  • Функции цветов рабочего стола были впервые представлены в Java 1.1.
  • Java 2D: улучшена поддержка цветов, изображений и текстов.

Особенности свинг-класса

  • Подключаемый внешний вид
  • Использует архитектуру MVC
  • Легкие компоненты
  • Независимая платформа
  • Расширенные функции, такие как JTable, JTabbedPane, JScolPane и т. д.
  • Java является независимым от платформы языком и работает на любом клиентском компьютере, внешний вид графического интерфейса пользователя, принадлежащий и предоставляемый операционной системой для конкретной платформы, просто не влияет на графический интерфейс приложения, созданный с использованием компонентов Swing.
  • Облегченные компоненты. Начиная с JDK 1.1, его AWT поддерживает разработку облегченных компонентов. Чтобы компонент считался легковесным, он не должен зависеть ни от каких системных классов, отличных от Java [O/s]. Компоненты Swing имеют собственное представление, поддерживаемое классами внешнего вида Java.
  • Подключаемый внешний вид: эта функция позволяет пользователю переключать внешний вид компонентов Swing без перезапуска приложения. Библиотека Swing поддерживает внешний вид компонентов, который остается одинаковым на всех платформах, где бы ни выполнялась программа. Библиотека Swing предоставляет API, который дает реальную гибкость в определении внешнего вида графического интерфейса приложения.

Иерархия классов Swing

Соединение MVC

  • В общем, визуальный компонент состоит из трех отдельных аспектов:
    • То, как компонент выглядит при отображении на экране
    • Как компонент реагирует на пользователя
    • Информация о состоянии, связанная с компонентом
  • За прошедшие годы однокомпонентная архитектура зарекомендовала себя как исключительно эффективная: модель-представление-контроллерили сокращенно
  • В терминологии MVC модельсоответствует информации о состоянии, связанной с компонентом.
  • Вид определяет, как компонент отображаетсяна экране, включая любые аспекты вида, на которые влияет текущее состояние модели.
  • Контроллер определяет, как компонент реагирует на пользователя

Простейшие компоненты Swing обладают возможностями, намного превосходящими компоненты AWT, а именно:

  • Кнопки Swing и метки могут отображать изображения вместо текста или в дополнение к нему.
  • Границы вокруг большинства компонентов Swing можно легко изменить. Например: легко поместить границу в 1 пиксель вокруг внешней стороны метки Swing.
  • Компоненты качания не обязательно должны быть прямоугольными. Кнопки, например, могут быть круглыми
  • Теперь новейшие технологии Assertive, такие как программы для чтения с экрана, могут легко получать информацию из компонентов Swing. Например: средство чтения с экрана может легко захватить текст, отображаемый на кнопке или метке Swing.

Компоненты Swing Classпроцент задачи

ClassОписание
ComponentКомпонент — это абстрактный базовый класс для элементов управления SWING, не относящихся к пользовательскому интерфейсу меню.  Компоненты представляют собой объект с графическим представлением
ContainerКонтейнер — это компонент, который может содержать компоненты SWING.
JComponentJComponent является базовым классом для всех Swing-компонентов пользовательского интерфейса. Чтобы использовать Swing-компонент, наследуемый от JComponent, компонент должен находиться в иерархии сдерживания, корнем которой является Swing-контейнер верхнего уровня.
JLabelJLabel — это объектный компонент для размещения текста в контейнере.
JButtonЭтот класс создает кнопку с меткой
JColorChooserJColorChooser предоставляет панель элементов управления, позволяющую пользователю манипулировать цветом и выбирать его.
JCheckBoxJCheckBox — это графический (GUI) компонент, который может находиться в состоянии on-(true) или off-(false).
JRadioButtonКласс JRadioButton — это графический (GUI) компонент, который может находиться в состоянии «включено» (истина) или «выключено» (ложь).  в группе
JListКомпонент JList представляет пользователя с прокручиваемым списком текстовых элементов.
JComboBoxКомпонент JComboBox предоставляет пользователю всплывающее меню выбора.
JTextFieldОбъект JTextField — это текстовый компонент, позволяющий редактировать одну строку текста.
JPasswordFieldОбъект JPasswordField — это текстовый компонент, предназначенный для ввода пароля.
JTextAreaОбъект JTextArea представляет собой текстовый компонент, позволяющий редактировать несколько строк текста.
ИмиджконЭлемент управления ImageIcon — это реализация интерфейса Icon, которая рисует значки из изображений.
JScrollbarЭлемент управления JScrollbar представляет собой компонент полосы прокрутки, позволяющий пользователям выбирать из значений диапазона.
JOptionPaneJOptionPane предоставляет набор стандартных диалоговых окон, которые запрашивают у пользователей значение или что-то еще.
JFileChooserJFileChooser, которым он управляет, представляет собой диалоговое окно, из которого пользователь может выбрать файл.
JProgressBarПо мере того, как задача приближается к завершению, на индикаторе выполнения отображается процент выполнения задачи.
JSliderJSlider этого класса позволяет пользователю графически (GUI) выбирать, используя значение, перемещая ручку в пределах ограниченного интервала.
JSpinnerJSpinner этого класса представляет собой однострочный ввод, где поле позволяет пользователю выбирать, используя число или значение объекта из упорядоченной последовательности.

Немного о графических интерфейсах Java

Перед тем, как приступить к графическим интерфейсам Java, вам следует кое-что узнать. Java поставляется с тремя наборами классов для создания приложений с графическим интерфейсом:
  • The Abstract Window Toolkit (AWT):
    Исходный набор классов, начиная с JDK 1. 0.

Классы в этом наборе принадлежат пакетам, имена которых начинаются с java.awt . Компоненты в этом наборе имеют такие имена, как Button , TextField , Frame и так далее.

Каждый компонент в программе AWT имеет равноправный компонент — сопутствующий компонент, принадлежащий собственной операционной системе компьютера. Например, когда вы создаете кнопку AWT , компьютер Mac создает кнопку собственного типа, которая будет отображаться на экране пользователя. Когда та же программа запускается на компьютере с Windows, компьютер с Windows создает кнопку другого типа (кнопку Windows) для отображения на экране компьютера. Код Java в AWT взаимодействует с кнопкой Mac или Windows, добавляя дополнительные функции там, где они необходимы.

AWT реализует только те компоненты, которые были доступны во всех распространенных операционных системах в середине 1990-х годов. Таким образом, используя AWT, вы можете добавить кнопку в свое приложение, но не можете легко добавить таблицу или дерево.

  • Java Swing: Набор классов, созданных для устранения некоторых трудностей, возникающих при использовании AWT. Swing был представлен в J2SE 1.2.

Классы в этом наборе принадлежат пакетам, имена которых начинаются с javax.swing . Компоненты в этом наборе имеют такие имена, как JButton , JTextField , JFrame и так далее.

В отличие от старого компонента AWT, компонент Swing не имеет аналогов. Когда вы создаете JButton в своей Java-программе, операционная система компьютера не создает собственную кнопку. Вместо этого JButton , который вы видите, является чистым объектом Java. Код визуального рендеринга Java рисует этот объект в окне. Это и хорошая новость, и плохая. Хорошая новость заключается в том, что программа Swing выглядит одинаково во всех операционных системах. В программе Swing вы можете создавать компоненты таблицы и компоненты дерева, потому что Java просто рисует их в окне компьютера.

Плохая новость заключается в том, что компоненты Swing некрасивы. А JButton выглядит примитивно и грубо по сравнению с кнопкой Mac или Windows.

Классы Java Swing заменяют некоторые (но не все) классы в более старой версии AWT. Чтобы использовать некоторые классы Swing, вы должны вызывать некоторые из старых классов AWT.

  • JavaFX: Новейший набор классов GUI в стандарте Oracle Java. JavaFX поставляется с новыми (er) версиями Java 7 и со всеми более поздними версиями Java.

Классы в этом наборе принадлежат пакетам, имена которых начинаются с javafx .

JavaFX поддерживает более 60 видов компонентов. (Конечно, вам нужен компонент Button . Но нужен ли вам также компонент Accordion ? У JavaFX есть такой компонент.) Кроме того, JavaFX поддерживает мультисенсорные операции и использует преимущества специализированных графических возможностей каждого процессора.

Эта статья из книги:

  • Начало программирования на Java для чайников,

Об авторе книги:

Доктор Барри Берд имеет степень магистра. в области компьютерных наук из Университета Рутгерса и докторскую степень. по математике в Университете Иллинойса. Барри также является автором книг

Начало программирования на Java для чайников, Java для Android для чайников, и Flutter для чайников.

Эту статью можно найти в категории:

  • Java ,

Создание графического интерфейса пользователя с помощью Swing (учебники по Java™)

Также известен как Swing Tutorial

Этот курс расскажет вам, как создавать графические пользовательские интерфейсы (GUI) для приложений и апплетов, используя компоненты Swing. Если вы хотите включить JavaFX в свое приложение Swing, см. Интеграция JavaFX в приложения Swing.

Начало работы с Swing — это урок для быстрого старта. Во-первых, это дает вам немного информации о Swing. Затем он расскажет вам, как компилировать и запускать программы, использующие компоненты Swing.

Изучение Swing с помощью среды IDE NetBeans

— это самый быстрый и простой способ начать работу с Swing. В этом уроке рассматривается конструктор графического интерфейса среды IDE NetBeans, мощная функция, позволяющая визуально создавать графические интерфейсы пользователя.

Использование компонентов Swing расскажет вам, как использовать каждый из компонентов Swing кнопки, таблицы, текстовые компоненты и все остальное. В нем также рассказывается, как использовать границы и значки.

Параллелизм в Swing обсуждает параллелизм применительно к программированию Swing. Включена информация о потоке отправки событий и классе SwingWorker.

Использование других функций Swing сообщает вам, как использовать действия, таймеры и панель задач; как интегрироваться с классом рабочего стола, как поддерживать вспомогательные технологии, как печатать таблицы и текст, как создавать экран-заставку и как использовать модальность в диалогах.

Компоновка компонентов в контейнере расскажет, как выбрать менеджера компоновки, как использовать каждый из классов менеджера компоновки, предоставляемых платформой Java, как использовать абсолютное позиционирование вместо менеджера компоновки и как создать свой собственный менеджер компоновки.

Изменение внешнего вида рассказывает вам, как указать внешний вид компонентов Swing.

Перетаскивание и передача данных сообщает вам, что вам нужно знать, чтобы реализовать передачу данных в вашем приложении.

Написание прослушивателей событий сообщает вам, как обрабатывать события в ваших программах.

Выполнение пользовательской окраски содержит информацию о том, как раскрашивать собственные компоненты Swing. В нем обсуждаются вопросы рисования, характерные для компонентов Swing, дается обзор концепций рисования и приводятся примеры пользовательских компонентов, которые рисуют сами себя.

Хотя это основной путь для изучения графических интерфейсов, это не единственный путь с информацией, связанной с пользовательским интерфейсом.

  • 2D-графика, описывающая функции 2D-графики, доступные в JDK.
  • Звук, в котором обсуждаются звуковые возможности, доступные в JDK.
  • Java-апплеты, описывающие API, доступные только для апплетов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *