Spec-Zone .ru
спецификации, руководства, описания, API
|
Текстовое поле является основным текстовым управлением, которое позволяет пользователю ввести небольшое количество текста. Когда пользователь указывает, что ввод текста полон (обычно нажатием, Входят), текстовое поле запускает событие действия. Если Вы должны получить больше чем одну строку ввода от пользователя, используйте текстовую область.
JTextField |
Что покрывает этот раздел: основные текстовые поля. |
JFormattedTextField |
A JTextField подкласс, который позволяет Вам определять юридический набор символов, которые может ввести пользователь. См., Как Использовать Отформатированные Текстовые поля. |
JPasswordField |
A JTextField подкласс, который не показывает символы, что пользователь вводит. См., Как Использовать Поля Пароля. |
JComboBox |
Может быть отредактирован, и обеспечивает меню строк, чтобы выбрать из. См., Как Использовать Поля комбинированного списка. |
JSpinner |
Комбинирует отформатированное текстовое поле с несколькими маленькими кнопками, которое позволяет пользователю выбрать предыдущее или следующее доступное значение. См., Как Использовать Прядильщиков. |
Следующий пример выводит на экран основное текстовое поле и текстовую область. Текстовое поле доступно для редактирования. Текстовая область не доступна для редактирования. Когда пользовательские нажатия Входят в текстовое поле, программа копирует содержание текстового поля в текстовую область, и затем выбирает весь текст в текстовом поле.
Нажмите кнопку Launch, чтобы работать, TextDemo, используя
Можно найти весь код для этой программы в TextDemo.java
. Следующий код создает и устанавливает текстовое поле:
textField = new JTextField(20);
Целочисленный параметр, который передают к JTextField
конструктор, 20
в примере, указывает на число столбцов в поле. Это число используется наряду с метриками, обеспеченными текущим шрифтом поля, чтобы вычислить привилегированный width поля. Это не ограничивает число символов, которые может ввести пользователь. Чтобы сделать это, можно или использовать отформатированное текстовое поле или слушателя документа, как описано в текстовых Компонентных Функциях.
Мы поощряем Вас определять число столбцов для каждого текстового поля. Если Вы не определяете число столбцов или привилегированного размера, то привилегированный размер поля изменяется всякий раз, когда текст изменяется, который может привести к нежелательным обновлениям расположения.
Следующая строка кодовых регистров a TextDemo
возразите как слушатель действия для текстового поля.
textField.addActionListener(this);
actionPerformed
метод обрабатывает события действия от текстового поля:
private final static String newline = "\n"; ... public void actionPerformed(ActionEvent evt) { String text = textField.getText(); textArea.append(text + newline); textField.selectAll(); }
Заметьте использование JTextField
's getText
метод, чтобы получить текст, в настоящий момент содержавший текстовым полем. Текст, возвращенный этим методом, не включает символ новой строки для клавиши Enter, которая запустила событие действия.
Вы видели, как может использоваться основное текстовое поле. Поскольку JTextField
class наследовался от JTextComponent
class, текстовые поля очень гибки и могут быть настроены почти любой способ, которым Вам нравится. Например, можно добавить слушателя документа или фильтр документа, который будет уведомлен, когда текст изменяется, и в случае фильтра можно изменить текстовое поле соответственно. Информация о текстовых компонентах может быть найдена в текстовых Компонентных Функциях. Прежде, чем настроить a JTextField
, однако, удостоверьтесь, что один из других компонентов, основанных на текстовых полях, не будет делать задания для Вас.
Часто текстовые поля соединяются с метками, которые описывают текстовые поля. См. Примеры Что Текстовые поля Использования для указателей при создании этих пар.
TextFieldDemo
пример представляет текстовое поле и текстовую область. Можно найти весь код для этой программы в TextFieldDemo.java
.
Поскольку Вы вводите символы в текстовом поле, программа ищет введенный текст в текстовой области. Если запись находится, она выделяется. Если программа не в состоянии найти запись тогда, фон текстового поля становится розовым. Строка состояния ниже текстовой области выводит на экран сообщение, находится ли текст или нет. Клавиша выхода используется, чтобы запустить новый поиск или закончить текущий. Вот изображение TextFieldDemo
приложение.
Нажмите кнопку Launch ro, работает, TextFieldDemo, используя Сеть Java™ Запускаются (
Чтобы выделить текст, этот пример использует маркер и живописца. Код ниже создает и устанавливает маркер и живописца для текстовой области.
final Highlighter hilit; final Highlighter.HighlightPainter painter; ... hilit = new DefaultHighlighter(); painter = new DefaultHighlighter.DefaultHighlightPainter(HILIT_COLOR); textArea.setHighlighter(hilit);
Этот код добавляет слушателя документа документа текстового поля.
entry.getDocument().addDocumentListener(this);
Слушатель документа insertUpdate
и removeUpdate
методы вызывают search
метод, который не только выполняет поиск в выделение дескрипторов, но также и текстовой области. Следующий код выделяет найденный текст, устанавливает каре до конца найденного соответствия, устанавливает фон значения по умолчанию для текстового поля, и выводит на экран сообщение в строке состояния.
hilit.addHighlight(index, end, painter); textArea.setCaretPosition(end); entry.setBackground(entryBg); message("'" + s + "' found. Press ESC to end search");
Строка состояния является a JLabel
объект. Код ниже шоу, как message
метод реализуется.
private JLabel status; ... void message(String msg) { status.setText(msg); }
Если там не идет ни в какое сравнение в текстовой области, следующий код изменяет фон текстового поля на розовый и выводит на экран надлежащее информационное сообщение.
entry.setBackground(ERROR_COLOR); message("'" + s + "' not found. Press ESC to start a new search");
CancelAction
class ответственен за обработку Клавиши выхода следующим образом.
class CancelAction extends AbstractAction { public void actionPerformed(ActionEvent ev) { hilit.removeAllHighlights(); entry.setText(""); entry.setBackground(entryBg); } }
Следующие таблицы приводят обычно используемый JTextField
конструкторы и методы. Другие методы, которые Вы, вероятно, вызовете, определяются в JTextComponent
class. Обратитесь к текстовому Компонентному API.
Вы могли бы также вызвать методы на текстовое поле, наследованное от других предков текстового поля, такой как setPreferredSize
, setForeground
, setBackground
, setFont
, и так далее. См. Класс JComponent для таблиц обычно используемых наследованных методов.
API для того, чтобы использовать текстовые поля попадает в эти категории:
Метод или Конструктор | Цель |
---|---|
|
Создает текстовое поле. Когда существующий, int параметр определяет требуемый width в столбцах. String параметр содержит начальный текст поля. |
(определенный в JTextComponent ) |
Наборы или получают текст, выведенный на экран текстовым полем. |
Метод | Цель |
---|---|
(определенный в JTextComponent ) |
Наборы или указывают, может ли пользователь отредактировать текст в текстовом поле. |
|
Наборы или получают число столбцов, выведенных на экран текстовым полем. Это - действительно только подсказка для того, чтобы вычислить привилегированный width поля. |
|
Наборы или получают, как текст выровненный горизонтально в пределах его области. Можно использовать JTextField.LEADING , JTextField.CENTER , и JTextField.TRAILING для параметров. |
Метод | Цель |
---|---|
|
Добавляет или удаляет слушателя действия. |
(определенный в JTextComponent ) |
Выбирает все символы в текстовом поле. |
Эта таблица показывает несколько из примеров, что текстовые поля использования и точки туда, где те примеры описываются. Для примеров кода, которые подобны среди всех вариантов текстовых полей, таких как контакт с расположением, смотрите на списки в качестве примера для связанных компонентов, таких как отформатированные текстовые поля и прядильщики.
Пример | Где Описано | Примечания |
---|---|---|
TextDemo | Этот раздел | Приложение, которое использует основное текстовое поле со слушателем действия. |
TextFieldDemo | Этот раздел | Приложение, которое использует текстовое поле и текстовую область. Поиск делается в текстовой области найти запись от текстового поля. |
DialogDemo | Как Сделать Диалоговые окна | CustomDialog.java включает текстовое поле, значение которого проверяется. Можно перевести диалоговое окно в рабочее состояние, щелкая по вкладке More Dialogs, выбирая Проверяющую ввода диалоговую опцию, и затем щелкая по Шоу это! кнопка. |
TextSamplerDemo | Используя текстовые Компоненты | Размечает пар текстового поля метки, используя a GridBagLayout и метод удобства: addLabelTextRows(JLabel[] labels, JTextField[] textFields, GridBagLayout gridbag, Container container) |
TextInputDemo | Как Использовать Отформатированные Текстовые поля | Размечает пар текстового поля метки, используя a SpringLayout и a SpringUtilities метод удобства: makeCompactGrid(Container parent, int rows, int cols, int initialX, int initialY, int xPad, int yPad) |
Если Вы программируете в JavaFX, см.