Написание простого пользовательского интерфейса Java с использованием NetBeans и Swing

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

class.

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

или сгруппировать их в другие контейнеры.

Слои Графический интерфейс известен как иерархия сдерживания и может рассматриваться как генеалогическое древо. Если

– это дедушка, сидящий наверху, то следующий контейнер можно рассматривать как отца, а компоненты, которые он содержит, – как дочерние элементы.

Для этого Например, мы создадим графический интерфейс с

, содержащим два

и

. Первый

будет содержать

и

. Второй

будет содержать

и

. Только один

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

.

Есть два способа создать этот графический интерфейс с помощью NetBeans. Первый – вручную ввести код Java, представляющий графический интерфейс, который обсуждается в этой статье. Второй – использовать инструмент NetBeans GUI Builder для создания графических интерфейсов пользователя Swing.

Для получения информации об использовании JavaFX вместо Swing для создания графического интерфейса см. Что такое JavaFX?

Примечание . Полный код этого проекта приведен в примере кода Java для создания простого приложения с графическим интерфейсом.

Настройка проекта NetBeans

Создайте новый проект приложения Java в NetBeans с основным class Мы назовем проект

Check Point: В окне “Проекты” NetBeans должна быть папка верхнего уровня GuiApp1 (если имя не выделено жирным шрифтом , щелкните папку правой кнопкой мыши и выберите

). Под папкой

должна быть папка исходных пакетов с

под названием GuiApp1. Эта папка содержит основной класс с именем

.java.

Прежде чем мы добавим какой-либо код Java, добавьте следующие импорты вверху

, между строкой

и

:

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

Внутри основного метода добавьте следующую строку кода:

Это означает, что первое, что нужно сделать, – это создать новый

объект. Это хороший ярлык для примеров программ, поскольку нам нужен только один класс. Чтобы это работало, нам нужен конструктор для класса

, поэтому добавьте новый метод:

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

.

Построение окна приложения с использованием JFrame

Примечание разработчика: Вы могли видеть опубликованный код Java, показывающий класс (т. е.

) расширенный от

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

, – это если вам нужно сделать более конкретный тип

(взгляните на

для получения дополнительной информации о создании подкласса).

Как упоминалось ранее, первый уровень графического интерфейса пользователя – это окно приложения, созданное из

. Чтобы создать объект

, вызовите

конструктор:

Затем мы установим поведение нашего окна приложения GUI, используя эти четыре шага:

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

2. Задайте заголовок для окна, чтобы в окне не было пустой строки заголовка. Добавьте эту строку:

3. Установите размер окна так, чтобы размер окна соответствовал размещаемым в нем графическим компонентам.

Примечание разработчика: альтернативный вариант для установки размера окно должно вызвать метод

класса

. Этот метод вычисляет размер окна на основе содержащихся в нем графических компонентов. Поскольку этому примеру приложения не нужно изменять размер окна, мы просто воспользуемся методом

.

4. Отцентрируйте окно так, чтобы оно отображалось посередине экрана компьютера, чтобы оно не отображалось в верхнем левом углу экрана:

Добавление двух панелей JPanel

Две строки здесь создают значения для

и

объекты, которые мы вскоре создадим, используя два

массива. Это упрощает заполнение некоторых примеров записей для этих компонентов:

Создайте первый объект JPanel

Теперь давайте создадим первый

объект. Он будет содержать

и

. Все три созданы с помощью своих методов-конструкторов:

Примечания к трем вышеупомянутым строкам:

  •  JPanel 

    переменная объявлена ​​ final . Это означает, что переменная может содержать только

     JPanel 

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

  •  JLabel 

    и

     JComboBox 

    имеют переданные им значения установить их графические свойства. Метка будет отображаться как «Fruits:», а в поле со списком теперь будут значения, содержащиеся в массиве

     fruitOptions 

    , объявленном ранее.

  •  add  () 

    метод

     JPanel 

    помещает в него графические компоненты.

     JPanel 

    использует FlowLayout в качестве менеджера компоновки по умолчанию. Это нормально для этого приложения, так как мы хотим, чтобы метка располагалась рядом с полем со списком. Пока мы сначала добавляем

     JLabel 

    , он будет выглядеть нормально:

Создайте второй объект JPanel

Второй

следует тому же шаблону. Мы добавим

и

и установим для этих компонентов значения “Vegetables:”, а второй

массив

. Единственное другое отличие – это использование метода

для скрытия

. Не забывайте, что будет

, управляющий видимостью двух

. Чтобы это работало, сначала нужно быть невидимым. Добавьте эти строки, чтобы настроить второй

:

Одна строка, на которую стоит обратить внимание в приведенном выше коде, – это использование метода

из

. Значение

заставляет список отображать элементы, которые он содержит, в двух столбцах. Это называется «газетным стилем» и представляет собой удобный способ отображения списка элементов, а не более традиционный вертикальный столбец.

Добавление завершающих штрихов

Последний необходимый компонент – это

для управления видимостью

с. Значение, переданное в конструктор

, устанавливает метку кнопки:

Это единственный компонент, для которого будет определен прослушиватель событий. «Событие» происходит, когда пользователь взаимодействует с графическим компонентом. Например, если пользователь нажимает кнопку или записывает текст в текстовое поле, происходит событие.

Слушатель событий сообщает приложению, что делать, когда событие происходит.

использует класс ActionListener для “прослушивания” нажатия кнопки пользователем.

Создание прослушивателя событий

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

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

  • Сначала мы вызываем метод
     addActionListener 

    для

     JButton 

    . Этот метод ожидает экземпляр класса

     ActionListener 

    , который является классом, который прослушивает событие.

  • Затем мы создаем экземпляр
     ActionListener 

    , объявив новый объект с помощью

     new ActionListener () 

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

  • Внутри анонимного внутреннего класса добавьте метод с именем
     actionPerformed () 

    . Это метод, который вызывается при нажатии кнопки. Все, что требуется в этом методе, – это использовать

     setVisible () 

    для изменения видимости

    JPanel

    s.

Добавить JPanels в JFrame

Наконец, нам нужно добавить два

s и

в

. По умолчанию

использует диспетчер компоновки BorderLayout. Это означает, что есть пять областей (в трех строках)

, которые могут содержать графический компонент (СЕВЕР, {ЗАПАД, ЦЕНТР, ВОСТОК}, ЮГ). Укажите эту область с помощью метода

:

Сделайте JFrame видимым

Наконец, весь приведенный выше код будет напрасно, если мы не сделаем

видимым:

Теперь мы готовы запустить проект NetBeans для отображения окна приложения. Нажатие на кнопку переключает отображение поля со списком или списка.

Оцените статью
recture.ru
Добавить комментарий