Главная » Java » Основные элементы Swing

0

Swing-­?

приложения:

•  Окно  или фрейм (frame), который может быть создан с помощьюкласса  JFrame.•  Невидимая  панель  (panel)  или,  как  ещё  её  называют, pane  (оконное  стекло) содержит все кнопки, текстовые поля, метки и  другие  компоненты.  Панели  создаются  с  помощью  класса  JPanel.

 •  Оконные  элементы управления, такие как кнопки JButton,текстовые  поля JTextfield,  списки JList, и так далее. •  Схемы  размещения  (layout managers) компонент, которыепомогают  организовать все эти кнопки и поля на панели.

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

фрейм,    задайте    его    размер    и    сделайте    его    видимым.

Но  отображение  фрейма  это  только  половина  работы.  Нужно  ещё добавить  обработку различных событий, например нажатий на кнопки. В  этой  главе  я  расскажу,  как  создавать  окна  с  компонентами,  а  в следующей –  обрабатывать события (events), которые могут произойти с компонентами окна.

Наша основная цель  в этой главе  – написать калькулятор, который позволяет сложить  два  числа  и  увидеть  результат.  Создайте  новый проект  в  Eclipse,  назовите  его  My Calculator и  добавьте  в  него  новый класс SimpleCalculator со следующим кодом:

import javax.swing.*;

import java.awt.FlowLayout;

public class SimpleCalculator {

public static void main(String[] args) {

// Создаём панель

JPanel windowContent= new JPanel();

// Задаём менеджер отображения для этой панели

FlowLayout fl = new FlowLayout();

windowContent.setLayout(fl);

// Создаём компоненты в памяти

JLabel label1 = new JLabel("Number 1:"); JTextField field1 = new JTextField(10); JLabel label2 = new JLabel("Number 2:"); JTextField field2 = new JTextField(10); JLabel label3 = new JLabel("Sum:"); JTextField result = new JTextField(10); JButton go = new JButton("Add");

// Добавляем компоненты на панель

windowContent.add(label1); windowContent.add(field1); windowContent.add(label2); windowContent.add(field2); windowContent.add(label3); windowContent.add(result); windowContent.add(go);

// Создаём фрейм и задаём для него панель

JFrame frame = new JFrame("My First Calculator");

frame.setContentPane(windowContent);

// задаём и размер и делаем фрейм видимым

frame.setSize(400,100);

frame.setVisible(true);

}

}

Скомпилируйте  и запустите эту программу. Должно появиться окноследующего вида:

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

 Схемы Размещения

В   некоторых   старомодных   языках   программирования   необходимо было  указывать координаты  и размеры  каждого компонента окна. Это работало  хорошо,   если   было   известно   разрешающая   способность экрана каждого пользователя.  Кстати, людей, которые пользуются программами,  называют  пользователями  (users). В  Java  есть  схемы размещения  (Layout  Managers),  которые  позволяют  разместить компоненты  на  экране,  не  зная  точных  позиций  компонентов. Схемы гарантируют, что та часть интерфейса, за которую они отвечают, будет выглядеть правильно вне  зависимости от размеров окна и разрешения экрана.Swing  предоставляет следующие схемы:

• FlowLayout

• GridLayout

• BoxLayout

• BorderLayout

• CardLayout

• GridBagLayout

Чтобы  использовать  любой  из  этих  менеджеров,  необходимо  создать его  экземпляр  и  затем  назначить  этот  объект  какому-­?нибудь

контейнеру (container), например панели, как это было в примере с SimpleCalculator.

FlowLayout – построчное расположение

По   этой   схемe   компоненты размещаются   в   окне   (или другом контейнере) строка за строкой. Например, текстовые метки, иконки, текстовые поля и кнопки будут добавляться в первую условную строку, пока  в ней есть место. Когда первая строка заполнится, оставшиеся компоненты  будут добавляться в следующую строку и так  далее. Если пользователь изменит размер окна, картина может измениться. Просто потяните  за  угол  калькулятора,  чтобы поменять  его  размер. Посмотрите как java.awt.FlowLayout переупорядочивает элементы окна во время изменения его размеров.

В  следующем  примере  кода,  ключевое  слово  this  представляетэкземпляр  класса SimpleCalculator.FlowLayout fl = new FlowLayout();

this.setLayoutManager(fl);

Согласен,  FlowLayout  не  лучшим  образом  подходит  для  нашего калькулятора.  Давайте теперь попробуем что-­?нибудь другое.

Источник: Java  Programming for Kids, Parents and Grandparents by Yakov Fain

По теме:

  • Комментарии