ПредишенСледващото

Текстови компоненти имат MVC архитектура. модел текст компонент при условие сравнително прост интерфейс на документа, който дава информация за промените в документа и да го съхранява в текста и редактиране на текст в резултат, ако е необходимо. Виж се реализира като представители на компонентите на UI текст; но той съставен въз основа на специални обекти и Element View, отговори по-точно на текста компонент. С тези обекти може да бъде гъвкаво персонализирате и разширяване на външния вид и структурата на текстови компоненти, без да пречи на сложния процес на крайната векторизиране. Контролерът е свързан с оглед да се справят събития, които не са склонни свързани към клавиатурата и частично изпълнени като клавиатура карта (клавиатурна подредба). клавиатура карта ви позволява да гъвкаво без промяна на UI-представител на текст компонент, компонентът текст за промяна на отговора на натискания на клавиши.

Връзки на страницата

компонент Текстово поле JTextField е най-лесният и най-често в потребителските интерфейси. Обикновено, тази област е една линия и се използва за въвеждане на текст. Библиотеката Swing има две текстови полета. Първият, представлявано от JTextField клас. Тя ви позволява да въвеждате текст на един ред. Второто поле, и прилагане на клас наследен от JPasswordField поле JTextField. дава възможност за организиране на вход "затворен" информационни (обикновено пароли), които не трябва да бъдат директно показани на екрана.

И двете текстови полета JTextField, JPasswordField проста. Работата с тях често се свежда до уточняване на броя на символите, показани в полето и парафира текста, ако е необходимо. Оставянето на единственото място, областта в контейнера, в точното време, за да се измъкнем от него потребителски печатен текст.

Пример за използване на текстови полета JTextField

Примерът създава прозорец с няколко текстови полета. Първото поле се създава с помощта на JTextField строителя. която е предала Максималният брой знаци в полето. За единична линия текстови полета, превъртане не е необходимо, и размера на полето със символи, трябва да съответства приблизително на обема на информацията, която потребителят въвежда в областта. Второто поле е създадена от функцията конструктор: го изпрати към текста, който ще бъде отбелязан в областта, както и максималният брой знаци. По-нататък вариант определено шрифта и подравняване на текст в полето. По подразбиране текстът се плътно вляво в примера - в дясно.

За да текстово поле, можете да прикачите ActionListener слушател. Тези студенти ще бъдат уведомени за потребителят натисне специален ключ, сигнали в края на вход. Обикновено това е ключът Enter. Използвайте слушателя е особено полезно в случай на текстови полета, предназначени за въвеждане на важна информация. Присъединявайки се към сферата на ActionListener слушател да се ускори процеса на работа с интерфейса, което премахва необходимостта от въвеждане на данни завършване щракване върху бутона за потвърждение, като бутона OK. В допълнение към пряката връзка към полето за слушател ActionListener можете да използвате и метода setAction (), за да се присъединят към областта на обектно-команда за действие. Този метод не премахва вече е свързан с областта на слушателите, те ще бъдат уведомени и за завършването на входа.

Примерът също използва поле за въвеждане на "затворен" JPasswordField данни. Това поле е наследен от един обикновен поле JTextField. само метод setEchoChar () могат да бъдат посочени от поле свои собствени методи JPasswordField. служи за промяна символ заместител. По подразбиране, звездичка "*" като такъв символ. Клас JPasswordField разработчиците не препоръчват да се кандидатства за въведените стойности в (парола), обичайната метод getText (). Фактът, че данните, получени по метода на String могат да бъдат кеширани (String обекти в Java най-оптимизиран компилатор и виртуална машина), както и нападателят може да я откраднат памет приложение за сканиране. За данните, предоставени по-сигурен метод getPassword (), която връща масив от символи, Чар, чиито стойности след проверка, че има смисъл, ако искате да се върнете и да предизвика боклукчията. Невярно JPasswordField Специално копира данните на клипборда - надделява разреза () и копие (), дефинирани в базовия клас JTextComponent, не могат да бъдат копирани на текст в клипборда.

setToolTipText () метод позволява за всяко поле зададете поп-нагоре "питане". Windows интерфейс е показан в следната скрийншота.

Jtextfield, jtextarea, jtextpane

бъде натиснат бутон, след входните стойности в горното поле , Полученият в диалоговия прозорец бе открит с дисплея на въведения текст.

Свойства на текстови полета

Имоти и се получи / зададе методи

Определяне на символа на заместител, за да въведете поверителна информация. По подразбиране е звездичка (*)

JTextArea поле многоредов текст се използва за въвеждане на прости неразпределени различни атрибути на текста. За разлика от конвенционалните полета, които позволяват да се влиза само един ред от текста, с по няколко реда полета позволяват на потребителя да въведете произволен брой реда текст.

За няколко реда полета трябва да бъдат определени, не само на ширината (Максималният брой знаци), но също така и височината (максимален брой редове). JTextArea трябва да бъдат поставени в JScrollPane превъртане панели. Да разгледаме примера на JTextArea.

Примерът създава две текстови полета с по няколко реда JTextArea. за които някои от най-често използваните свойства са променени. Първият текстовото поле е създаден с помощта на конструктора zapolnyaeschego текстово поле и определя броя на текст и символи. Трябва да се отбележи, че броят на линиите е в списъка с опции пред характер. Определя се в конструктора и броя на линиите на знака на областта се определят от размера на съда, но не налага ограничения върху размера на въвеждане на текст. За първото поле е променен на шрифта и идентифицира нестандартно стойност за причиняване метод раздела setTabSize на (). Този метод ви позволява да определите колко място герои ще замени героя на раздела вмъква чрез натискане .

второ текстовото поле е създаден с помощта на конструктора, която се предава като параметри на броя на текст и символи. След това, с помощта на метод setText () се определя от съдържанието на полето и променящи свойствата, които контролират процеса на прехвърляне на текст на нови линии. Стандартният текст в поле JTextArea не се прехвърля на новата линия. Променете това поведение позволява метод setLineWrap (). setWrapStyleWord () метод променя стила на прехвърлянето на дълги думи за новата линия. Ако мине този метод, за да е истина, думите не се вместват в линията ще бъдат изцяло прехвърлени на новата линия. Стойността по подразбиране на този имот е невярно. Това означава, че текстът се прехвърля веднага след като вече не е достатъчно място в линията, независимо къде по думите необходимо да се направи прехвърлянето.

Текстовите полета се добавят към прозореца със съдържание прозорец с помощта JScrollPane ленти за превъртане. Трябва да се отбележи, че JTextArea текстовото поле не разполага със собствена рамка. превъртане решаване на този проблем. Windows интерфейс е показан в следната скрийншота.

Jtextfield, jtextarea, jtextpane

Обърнете внимание на разликата между изпълнението на прехвърлянето на текста в JTextArea на два компонента. За да укажете кой текст в лявото поле, за да натиснете ръчно бутона за въвеждане. но на дясно поле мигрират автоматично.

Имоти многоредово текстови полета JTextArea

Имоти (и да получаваш / определени методи)

Получаване на дължината на текста съхраняват в модела на документа.

За да следите промените в текстови полета достъпно Swing събитие DocumentEvent и слушател DocumentListener, които могат да бъдат приложени към модел на документа. DocumentEvent събитие се случва всеки път, когато промените текста на документа. Интерфейсът на слушател DocumentListener определени три метода; всеки един от тях се причинява от определен тип събитие в документа: премахване removeUpdate (DocumentEvent д). актуализира changedUpdate (DocumentEvent д) или поставете insertUpdate (DocumentEvent д) на текста.

Един пример за използване на клас JTextField C модифицирания DocumentListener включен в архива на дискутираните в страницата примери. Пример AutoCompleteFieldTest.java смяна дума се извършва в текстовото поле в продължение на няколко начални букви.

Курсор текст компонент изпълнява интерфейс Caret. Курсорът ви позволява да промените програмно текущата позиция в текста и управление на избрания текст. За да работите с избрания текст, има няколко метода, но първоначално избор на текст се администрира от курсора на текст в JTextComponent базовия клас.

Курсорът има две основни функции - позицията си и с точка на стартовата позиция на избрания текст марката. Позиция на курсора показва, където ще бъдат поставени на героите.

Курсора описано Caret интерфейс поддържа ChangeEvent събитие. Като прибавим към, можете да получите на курсора слушател ChangeListener информация за всички движения на курсора. JTextComponent базовия клас подкрепя CaretEvent събитие. Той също така се изпълнява при движението на курсора. Но ако събитие ChangeEvent съдържа само източникът на събитието (самият курсор), събитието позволява CaretEvent веднага знаете текущата позиция на курсора, а отправна точка.

Пример за използване на курсора Caret клас е включен в архива на обсъжданите в страницата примери. Пример CaretTest.java показва операция с методи стрелки setDot (междинно положение), moveDot (междинно положение), setBlinkRate (междинно Честотен), getMark () и getDot ().

изтегляне примери

Източник код примери, обсъждани на страницата, можете да изтеглите от тук (10 KB).

Подкрепете проекта - споделете линка, благодаря!