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

Объект Constraints имеет свойства x, y, width и height.

Однако в объекте Constraints эти свойства имеют значения Spring вместо целых чисел.

Кроме того, объектом Constraints можно манипулировать как четырьмя краями – север, юг, восток и запад.

Объект Spring имеет четыре свойства – минимальное, предпочтительное и максимальное значения и фактическое (текущее) значение.

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

Таким образом, компоновку SpringLayout можно представить, как набор объектов, которые соединены множеством пружин на их краях.

В этом примере мы устанавливаем ограничения методом putConstraint для менеджера SpringLayout.

В которых мы связываем левый край метки с левым краем контейнера.

Верхний край метки с верхним краем контейнера.

Левый край поля с правым краем метки.

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

И нижний край поля с нижним краем контейнера.

JSplitPane

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




Эти два компонента могут располагаться по горизонтали, что определяется константой HORIZONTAL_SPLIT класса JSplitPane, или по вертикали – константа VERTICAL_SPLIT.

Эти константы указываются в конструкторе класса JSplitPane.

Конструктор по умолчанию JSplitPane без аргументов задает горизонтальное расположение компонентов и создает, и размещает две кнопки JButton с надписями «left button» и «right button».

Панель JSplitPane при перемещении разделительной черты может перерисовывать компоненты сразу же по мере передвижения или после окончательной установки разделительной черты.

Это определяется вторым параметром конструктора JSplitPane.

Остальные конструкторы класса JSplitPane кроме расположения задают два компонента панели.

Очень часто компоненты, размещаемые на панели, – это панели прокрутки JScrollPane, содержащие текст, изображение, таблицу или другие компоненты.

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



Его можно установить методом setDividerLocation.

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

По умолчанию толщина равна 8 пикселов.

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

На разделительную черту можно поместить две небольшие кнопки с треугольными стрелками методом setOneTouchExpandable (true).

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

Компоненты можно установить на панель или заменить другими компонентами с помощью методов setLeftComponent, setRightComponent, setTopComponent, setBottomComponent.

JTabbedPane

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




При этом остальные компоненты лежат под первым в определенном порядке.

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

Конструктор по умолчанию класса JTabbedPane создает пустую панель без вкладок.

Первый аргумент конструктора задает расположение вкладок с помощью констант TOP, BOTTOM, LEFT, RIGHT.

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

Если все вкладки не помещаются в окно панели в один ряд, тогда они могут располагаться несколькими рядами или прокручиваться, для чего в строке вкладок появляются кнопки прокрутки.

Такое расположение вкладок определяется вторым аргументом конструктора.

Расположение вкладок в несколько рядов устанавливается константой WRAP_TAB_LAYOUT, расположение вкладок в один ряд с прокруткой устанавливается константой SCROLL_TAB_LAYOUT.

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



Все это можно сделать также методами set класса JTabbedPane.

Вставить вкладку можно также методом insertTab.

Кроме того, можно задать цвет фона вкладки методом setBackgroundAt.

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

И вам самостоятельное задание – создайте панель JTabbedPane с кнопками, закрывающими вкладки панели.

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

JToolBar

Компонент JToolBar – это контейнер, который группирует несколько компонентов – это обычно кнопки с значками – в строку или столбец.




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

Пустая горизонтальная панель создается конструктором по умолчанию класса JToolBar.

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

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

Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

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