Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Панели и менеджеры раположения

Читайте также:
  1. D стеновые панели
  2. Межэлектровозные соединения, зажимы контактные, панели зажимов, низковольтные розетки
  3. Менеджеры в инновационной сфере.
  4. Панели скроллирования
  5. Расчет пустотной панели с напрягаемой арматурой по предельным состояниям первой группы
  6. Реле и панели реле
  7. Социальный менеджмент и менеджеры

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

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

JPanel () — создает контейнер с менеджером размещения по умолчанию FlowLayout

JPanel (LayoutManager layout) — создает контейнер с указанным менеджером размещения компонентов layout.

После создания контейнера в него добавляются компоненты унаследованным методом add ():

JPanel p = new JPanel();

p.add(comp1);

p.add(comp2);

С панелями (и другими контейнерами) тесно связано использование специальных классов,так называемых менеджеров расположения (layout managers), которые позволяют автоматически определять местоположение и размеры компонентов внутри панели.

Основная идея LayoutManager состоит в том, что программисту предоставляется уже готовые варианты размещения компонентов на экране стандартные Layout managers, а также дается возможность самому описать механизм (алгоритм) который будет корректно обрабатывать такую ситуацию.

Любой контейнер (Container и его подклассы) имеет метод setLayout(LayoutManager mgr). Задавая новый layout manager сообщается контейнеру, какой алгоритм он должен использовать при размещении компонентов

Методы

getMaximumSize() – возвращает максимально допустимый размер компонента.

getMinimumSize() – возвращает минимально допустимый размер компонента.

getPrefferedSize() – возвращает наиболее предпочтительный размер компонента

Рассмотрим основные виды размещения:

--FlowLayout

--BorderLayout

-- GridLayout

-- GridBagLayout

-- CardLayout

-- BoxLayout

JPanel pane = new JPanel();

pane.setLayout(new BorderLayout());

FlowLayout укладывает в контейнер один компонент за другим слева направо, переходя от верхних рядов к нижним.

При изменении размера контейнера компоненты перестраиваются.

Компоненты поступают в том порядке, в каком они заданы в методах add ().

В каждом ряду компоненты могут прижиматься к левому краю,если в конструкторе аргумент align равен FlowLayout. LEFT, к правому краю, если этот аргумент FlowLayout. RIGHT, или собираться в середине ряда, если FlowLayout.CENTER.

Между компонентами можно оставить промежутки (gap) по горизонтали hgap и вертикали vgap.

Это задается в конструкторе:

FlowLayout(int align, int hgap, int vgap)

Второй конструктор задает промежутки размером 5 пикселов:

FlowLayout(int align)

Третий конструктор определяет выравнивание по центру и промежутки 5 пикселов:

FlowLayout()pane.setLayout (new FlowLayout(FlowLayout.LEFT,10,10));

BorderLayout делит контейнер на пять неравных областей, полностью заполняя каждую область одним компонентом, как показано

Области получили географические названия NORTH, SOUTH, WEST, EAST И CENTER

Метод add о в случае применения BorderLayout имеет два аргумента:

ссылку на компонент соmр

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

add(Component comp, String region)

Обычный метод add (Component comp) с одним аргументом помещает компонент в область CENTER.

Менеджер размещения BorderLayout кажется неудобным: он располагает не больше пяти компонентов, последние растекаются по всей области, области имеют странный вид.

Но дело в том, что в каждую область можно поместить не компонент, а панель, и размещать компоненты на ней

GridLayout расставляет компоненты в таблицу с заданным в конструкторе числом строк rows и столбцов columns:

GridLayout(int rows, int columns)

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

Второй конструктор позволяет задать промежутки между компонентами в пикселах по горизонтали hgap и вертикали vgap:

GridLayout(int rows,int columns,int hgap,int vgap)

Компоненты размещаются менеджером GridLayout слева направо по строкам созданной таблицы в том порядке, в котором они заданы в методах add().

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

В классе GridBagLayout есть только один конструктор по умолчанию, без аргументов. Менеджер класса GridBagLayout, в отличие от других менеджеров размещения, не содержит правил размещения. Он играет только организующую роль.

Ему передаются ссылка на компонент и правила расположения этого компонента, а сам он помещает данный компонент по указанным правилам в контейнер. Все правила размещения компонентов задаются в Объекте другого класса, GridBagConstraints.

Менеджер размещает компоненты в таблице с неопределенным заранее числом строк и столбцов.

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

CardLayout — показывает в контейнере только один, первый (first),компонент. Остальные компоненты лежат под первым в определенном порядке как игральные карты в колоде. Их расположение определяется порядком, в котором написаны методы add ().

Следующий компонент можно показать методом next (Container с), предыдущий — методом previous (Container с),последний— методом last (Container с), первый — методом first (Container с).

Аргумент этих методов — ссылка на контейнер, в который помещены компоненты, обычно this.

Конструкторы

СardLayout () — не отделяет компонент от границ контейнера;

CardLayout (int hgap, int vgap) — задает горизонтальные hgap и вертикальные vgap поля.

BoxLayout Позволяет располагать компоненты вдоль одной из осей – вертикально или горизонтально.В конструкторе указывается, какой вариант предпочитает использовать программист.

Кнопки, иерархия классов, свойства, конструкторы и методы.*

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

Свойства

--action-ассоциированное событие

--actionCommand-название команды

--text-надпись на кнопке

--enabled-разрешено ли нажимать

--icon, disabledIcon,pressedIcon-иконки

--horizontal(vertical)Alighment-выравнивание текста и иконки

----horizontal(vertical)TextPosition-положение ьекста относительно иконки

--margin-отступы

Конструкторы

Имеется несколько конструкторов класса JButton, позволяющих создавать кнопки, на которых может быть изображен текст, рисунок, рисунок и текст одновременно или ничего не изображено.Для того, чтобы командная кнопка содержала изображение рисунка, в качестве параметра конструктора JButton необходимо использовать объект, реализующий интерфейс Icon – как правило, это класс ImageIcon:

public JButton()

public JButton(String s)

public JButton (Icon icon)

public JButton (String s, Icon icon)

Методы

--void setText(String str)-установить надпись на кнопке

--String getText()-считать надпись на кнопке

--void setIcon()- установить пиктограмму

--Icon getIcon()- считать пиктограмму

--void setHorizontalAligment(int)-установить горизонтальное выравнивание кнопки(константами LEFT,CENTER,RIGHT)

--void setVerticalAlighment(int)-установить вертикальное выравнивание кнопки(константами TOP, CENTER, BOTTOM)

-- void setHorizontalTextPosition()int-установить горизонтальное выравнивание относительно отображаемой на кнопке пиктограмме(константами LEFT, RIGHT, CENTER)

--void setVerticalTextPosition(int)-установить вертикальное выравнивание текста относительно отображаемой на кнопке пиктограмме(константы TOP, CENTER, BOTTOM)

--void setActionCommand(String)-установить имя команды, выполняемой при нажатии на кнопку

--void setMnemonic(char)-установить клавишную комбинацию для нажатия кнопки

Пример

public class ButtonPanel extends JPanel {

public ButtonPanel () {

JButton myButton = new JButton("Tiger"); add(myButton);}}

public class ButtonPanel extends JPanel { public ButtonPanel() {

Icon tigerIcon = new ImageIcon("SmallTiger.gif");

JButton myButton = new JButton("Tiger", tigerIcon);

add(myButton); } }




Дата добавления: 2015-09-11; просмотров: 117 | Поможем написать вашу работу | Нарушение авторских прав

Обработка исключений | Методы класса Throwable | Классы DataInputStream и DataOutputStream | Класс StreamTokenizer | Классы Reader и Writer. | Сериализация и десериализация объектов | Списки JList, конструкторы, методы | Интерфейсы-слушатели и классы-адаптеры |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.11 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав