Читаем Графические интерфейсы пользователя Java полностью

В общем, тип элементов столбца, по которому ведется сортировка, должен обеспечивать сравнение элементов по величине, реализовав интерфейс Comparable.

Это можно проверить логическим методом isSortable сортировщика.

В этом случае используется компаратор, который сортирует строки на основе значений, возвращаемых методом compareTo интерфейса Comparable.

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

В нашем случае элементы столбцов таблицы – это объекты String и метод isSortable вернет true.

Можно создать свой объект Comparator для столбца и установить его для сортировщика методом setComparator.

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

Сортировщик строк таблицы TableRowSorter позволяет отфильтровать строки по какому-нибудь критерию для вывода их в представление.

Для этого надо создать фильтр – объект абстрактного класса RowFilter, и установить его методом setRowFilter сортировщика.

Для создания фильтра можно использовать статические методы класса RowFilter.

Или можно создать свой класс, определив метод include класса RowFilter.

Сортировщик обращается к этому методу при просмотре модели данных таблицы, передавая этому методу каждую строку таблицы.

Метод возвращает true, если строка отвечает фильтру и ее надо передать в представление.

Передаваемая методом строка состоит из столбцов и представлена объектом RowFilter. Entry.

Поэтому мы в методе include перебираем строку по столбцам и для каждого столбца получаем его значение методом getValue.

Затем мы проверяем это значение на соответствие критерию и возвращаем методом include значение true или false.

<p>Layout Manager</p>

Разберем теперь менеджеров компоновки.

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

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

Менеджер компоновки – это объект, который реализует интерфейс LayoutManager и определяет размер и положение компонентов в контейнере.

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

По умолчанию, большинство контейнеров имеют уже какой-то менеджер компоновки.

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

Указав вместо экземпляра менеджера значение null, вы можете работать вообще без менеджера компоновки и размещать каждый компонент индивидуально в контейнере, указывая размеры и местоположение компонента с помощью метода setBounds класса java.awt.Component.

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

Менеджер компоновки вычисляет минимальные / предпочтительные / максимальные размеры контейнера.

И далее размещает компоненты в контейнере.

Менеджеры компоновок делают это на основе предоставленных ограничений, таких как свойств контейнера и минимальных / предпочтительных / максимальных размеров компонентов.

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

Контейнер может быть действительным, а именно, его метод isValid возвращает true, или недействительным.

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

Метод Container.validate может использоваться для проверки недопустимого контейнера.

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

<p>FlowLayout</p>

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

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

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

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

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

Эти же параметры можно изменить методами setHgap, setVgap, и setAlignment.

<p>BorderLayout</p>

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

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

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

Метод add с одним аргументом помещает компонент в область CENTER.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных

Все жанры