Многострочное поле JTextArea — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Многострочное поле JTextArea

2020-04-01 190
Многострочное поле JTextArea 0.00 из 5.00 0 оценок
Заказать работу

Многострочное текстовое поле JTextArea представляет собой более расширенную версию обычного текстового поля JTextField. Как и обычное поле JTextField, многострочное поле JTextArea предназначено для ввода простого неразмеченного различными атрибутами текста, но в отличие от обычных полей, позволяющих вводить только одну строку текста, многострочные поля дают пользователю возможность вводить произвольное количество строк текста. Кроме того, поле JTextArea часто используется для вывода разного рода подробной информации о работе приложения, отображать которую в диалоговых окнах или в консоли неудобно. Вывод информации в многострочное текстовое поле позволяет пользователю без труда просмотреть ее, как бы много ее ни было, и при необходимости скопировать или изменить. Работают с многострочными полями так же, как с обычными, отличие лишь в том, что для них приходится задавать не только ширину (максимальное количество символов), но и высоту (максимальное количество строк). Многострочные текстовые поля следует размещать в панелях прокрутки JScrollPane, иначе при вводе множества строк текста они «расползутся» но контейнеру и испортят вид остальных компонентов.

// Использование многострочных полейjavax.swing.*;

import java.awt.Font;class UsingTextArea extends JFrame {UsingTextArea() {("UsingTextArea");(EXIT_ON_CLOSE);

// создаем пару многострочных полейarea1 = new JTextArea("Многострочное поле", 5, 10);

area1.setFont(new Font("Dialog", Font.PLAIN, 14)); // шрифт.setTabSize(10); // табуляцияarea2 = new JTextArea(15, 10);

area2.setLineWrap(true); // параметры переноса слов

area2.setWrapStyleWord(true);contents = new JPanel(); // добавим поля в окно.add(new JScrollPane(area1));.add(new JScrollPane(area2));(contents);(400, 300); // выводим окно на экран(true);

}static void main(String[] args) {

new UsingTextArea();

} }

В примере мы размещаем в окне пару многострочных текстовых полей JTextArea, для которых были изменены свойства, чаще других использующиеся в приложениях. Первое текстовое поле создается с помощью довольно функционального конструктора, задающего для поля находящийся в нем текст, количество строк и символов. Количество строк идет в списке параметров перед количеством символов. Задаваемые в конструкторе количества строк и символов поля определяют его размер в контейнере, но не накладывают каких-либо ограничений на объем вводимого текста, который может быть произвольным. Для первого поля был изменен шрифт и задано нестандартное значение для табуляции, вызывая метод setTabSize(). Данный метод позволяет указать, какое количество символов будет замещать символ табуляции (вставляемый нажатием клавиши Tab, по умолчанию - 8). Это может быть полезным в текстах с большим количеством отступов. Второе текстовое поле создается с помощью конструктора, принимающего в качестве параметров только количества строк и символов; поначалу текста в таком поле не будет. Для второго поля мы меняем свойства, управляющие процессом переноса текста на новые строки, именно эти свойства наиболее полезны при работе с многострочными полями. Метод setLineWrap() включает автоматический перенос текста на новую строку. Длинные слова будут переноситься на следующие строки, так что в таком многострочном поле никогда не потребуется горизонтальная прокрутка. Метод setWrapStyleWord() изменяет стиль переноса длинных слов на новые строки. При передаче в этот метод значения true, слова, не умещающиеся в строке, будут целиком переноситься на строку новую. По умолчанию значение этого свойства равно false, это означает, что текст переносится, как только ему перестает хватать места в строке, независимо от того, в каком месте слова приходится делать перенос. В заключение текстовые поля добавляются в панель содержимого окна, которое затем выводится на экран.


 

Главное меню JMenuBar

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

При организации меню на Java Swing используется не только класс JMenuBar, но и JMenu и JMenuItem. Скорее даже JMenuBar практически не используется - основная работа при конструировании меню происходит с JMenu и JMenuItem. В самом простом случае мы создаем экземпляр JMenuBar, добавляем к нему необходимый набор JMenu и JMenuItem (иногда, обычно только JMenu), а затем говорим JFrame использовать в качестве главного меню наше при помощи метода setJMenuBar. Параметр у метода setJMenuBar один - ссылка на JMenuBar.

Для реализации меню используются следующие классы:

• JMenuBar - панель меню, каждое меню определяется объектом JMenu;

• JPopupMenu - контекстное меню;

• JSeparator - разделитель меню;

• JMenuItem - базовый класс для следующих трех;

• JMenu - объект меню, используется для вложенных меню или как элемент для панели меню;

• JCheckboxMenuItem - элемент меню в виде флажка;

• JRadioButtonMenuItem - элемент меню в виде радио-кнопки.

Окно с рамкой JFrame

Окно с рамкой JFrame унаследовано от класса JWindow и представляет собой наиболее часто используемое в приложениях окно «общего назначения». В отличие от окон JWindow окна JFrame обладают рамкой (которая позволяет пользователям легко изменять их размер), заголовком с названием приложения, иногда системным меню (позволяющим проводить манипуляции с этим окном) и кнопками для управления окном. Именно класс JFrame применяется в подавляющем большинстве приложений для размещения компонентов пользовательского интерфейса.

// FrameClosing.java

// Использование окна с рамкой

import javax.swing.*;class FrameClosing extends JFrame {FrameClosing() {("Заголовок Окна");(EXIT_ON_CLOSE); //операция при закр. окна(getToolkit().getImage("icon.gif")); // значок для окна(300, 100); // вывод на экран(true); }static void main(String[] args) { new FrameClosing(); }}

В этом примере создается подкласс JFrame, указывается заголовок окна (в конструкторе базового класса, хотя можно было бы использовать и метод setTitle()) и, прежде чем задать размеры окна и вывести его на экран, вызываем метод setDefaultCloseOperation(). Он позволяет указать, какое действие будет произведено в методе предварительной обработки событий processWindowEvent() при закрытии окна. По умолчанию применяется константа HIDE_ON_CLOSE, убирающая с экрана окно при его закрытии. В данном примере было использовано значение EXIT_ON_CLOSE, которое указывает, что при закрытии окна необходимо закончить работу приложения. Метод setIconImage() позволяет задать значок для окна. Из дополнительных возможностей окна с рамкой JFrame можно упомянуть о его способности «прятать» свои «украшения»: рамку и элементы управления окном. Делает это метод setUndecorated(true). После его вызова окно JFrame будет без рамки. Также стоит упомянуть метод setExtendedState(), который позволяет задать состояние окна, например, свернуть его, но работает на разных платформах по-разному (к примеру, с Windows и JDK 1.4 оно позволяет только свернуть окно, но не позволяет развернуть его на весь экран).


Поделиться с друзьями:

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.