Элементы управления TextField и TextArea 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Элементы управления TextField и TextArea



Эти два класса позволяют отображать текст с возможностью его выделения и редактирования. Это по сути маленькие текстовые редакторы – однострочный (TextField) и многострочный (TextArea).

Создать текстовое поле и текстовую область можно следующими способами:

TextField tf = new TextField (50);

TextArea ta = new TextArea (5, 30);

Чтобы запретить или разрешить редактирование текста в окне, можно возпользоваться методом void setEditable(boolean).

tf.setEditable (false);

ta.setEditable (false);

 

Некоторые методы классов TextField и TextArea:

String getText() – читать текст;

void setText(String) – отобразить текст;

void selectAll() – выделить весь текст;

int getColumns() – возвратить количество символов строки.

 

Специфические методы TextField:

void setEchoChar(char) – установить символ маски (при вводе паролей);

char getEchoChar() − узнать символ маски.

Специфические методы для TextArea:

int getRows() – считать количество строк в окне;

void insertText(String, int) – вставить текст в определенной позиции int;

void replaceText(String, int, int) – заменить текст между заданными начальной и конечной позицией.

Следующий пример демонстрирует приложение с элементами управления: кнопкой (Button), списком (List), раскрывающимся списком(Choice), текстовой строкой (Label), текстовым полем (TextField). Введенное в текстовом поле слово при нажатии кнопки добавляется как в список, так и в раскрывающийся список. Также реализован механизм закрытия фрейма.

 

Пример 3.7

Листинг GUISample.java

import java.io.*; //импортирование пакета ввода-вывода

import java.awt.*; //импортирование пакета awt

import java.awt.event.*; //импортирование пакета поддержки событий

public class GUISample extends Frame{ //объявление класса GUISample

Button b1 = new Button("Add"); //создание кнопки с надписью "Add"

Choice ch1=new Choice(); //создание раскрывающегося списка

TextField tf1 = new TextField(); //создание текстового поля (строки

//ввода)

Label label1 = new Label("Enter your text here:"); //создание текстовой

//строки

List l1 = new List(); //создание списка

public GUISample(){ //объявление конструктора класса

setLayout(null); //отключение менеджера компоновки

setSize(600,400); //установка размеров фрейма

setTitle("This is my Frame"); //установка заголовка фрейма

setBackground(Color.cyan); //установка цвета заднего фона фрейма

add(b1); //добавление кнопки к окну

b1.setBounds(220,200,84,24); //установка размеров кнопки

b1.setForeground(Color.black); //установка цвета переднего фона кнопки

b1.setBackground(Color.magenta); //установка цвета заднего фона кнопки

add(ch1); //добавление раскрывающегося списка к окну

ch1.setBounds(50,120,120,20); //установка размеров раскрывающегося

//списка

add(tf1); //добавление текстового поля к окну

tf1.setBounds(200,80,120,20); //установка размеров текстового поля

add(label1); //добавление текстовой строки к окну

label1.setBounds(200,55,120,20); //установка размеров текстовой строки

add(l1); //добавление списка к окну

l1.setBackground(Color.white); //установка цвета заднего фона списка

l1.setBounds(350,120,200,216); //установка размеров списка

/*регистрация блока прослушивания событий типа WindowEvent*/

addWindowListener(new WindowClose());

/*регистрация блока прослушивания событий типа ActionEvent*/

b1.addActionListener(new ButtonAdd());

}

/*объявление класса-адаптера для обработки Window-событий*/

class WindowClose extends WindowAdapter {

/*метод, который вызывается при закрытии окна*/

public void windowClosing(WindowEvent we) {

setVisible(false); //фрейм-окно становится невидимым

}

}

/*объявление класса для обработки Action-событий (класс ButtonAdd реализует интерфейс ActionListener)*/

class ButtonAdd implements ActionListener {

/*реализация метода, который вызывается при наступлении action-события*/

public void actionPerformed(ActionEvent event) {

/*добавление текста из текстового поля в раскрывающийся список*/

ch1.add(tf1.getText());

/*добавление текста из текстового поля в список*/

l1.add(tf1.getText(),2);

}

}

static public void main(String args[]){ //объявление метода main()

GUISample MyFrame=new GUISample(); //создание экземпляра класса GUISample

MyFrame.setVisible(true); //выведение окна на экран дисплея

} }

 

Результаты работы программы представлены на рис. 3.1.

 

Рис. 3.1. Результат работы программы

 

Диалоговые окна

Диалоговые окна подобны фрейм-окнам за исключением того, что они – всегда дочерние окна для окна верхнего уровня. Кроме того, диалоговые окна не имеют строки меню. В других отношениях они функционируют подобно фреймовым окнам. Можно, например, добавить к ним элементы управления тем же способом, каким добавляются элементы управления к фреймовому окну. Диалоговые окна могут быть модальными или немодальными. Когда модальное диалоговое окно активно, весь ввод направляется к нему, пока оно не будет закрыто. Это означает, что невозможно обратиться к другим частям программы до тех пор, пока не закрыто диалоговое окно. Когда немодальное диалоговое окно активно, фокус ввода может быть направлен другому окну программы. Таким образом, другие части программы остаются активными и доступными. Диалоговые окна обслуживает класс Dialog. Обычно используются следующие конструкторы класса:

 

Dialog(Frame parentWindow, boolean mode);

Dialog(Frame parentWindow, String title, boolean mode);

parentWindow – владелец диалогового окна. Если mode имеет значение true, диалоговое окно является модальным. Иначе оно немодальное. Заголовок диалогового окна можно передать через параметр title.

 

Следующий пример демонстрирует фреймовое окно с меню, из которого (выбором пунтов меню File→DemoDialog) вызывается модальное диалоговое окно.

Пример 3.8

Листинг Frame1.java

import java.awt.*;

import java.awt.event.*;

public class Frame1 extends Frame

implements ActionListener,WindowListener{

Menu file;MenuItem item1;

public Frame1(){

super("Фреймовое окно с меню");

setSize(500,300);

//создать строку главного меню и добавить его во фрейм

MenuBar mbar=new MenuBar();

setMenuBar(mbar);

//создать элемент меню

file=new Menu("File");

mbar.add(file);

file.add(item1=new MenuItem("DemoDialog"));

item1.addActionListener(this);

setVisible(true);

addWindowListener(this);

}

public void actionPerformed(ActionEvent ae) {

DemoDialog d=new DemoDialog(this,"Диалоговое окно",true);

}

public void windowClosing(WindowEvent we){

this.dispose();

}

public void windowActivated(WindowEvent we){};

public void windowClosed(WindowEvent we){};

public void windowDeactivated(WindowEvent we){};

public void windowDeiconified(WindowEvent we){};

public void windowIconified(WindowEvent we){};

public void windowOpened(WindowEvent we){};

public static void main(String args[])

{Frame1 f=new Frame1();

}

class DemoDialog extends Dialog implements ActionListener{

Button btn;

public DemoDialog(Frame1 ff, String title,boolean b){

super(ff,title,b);

setLayout(new FlowLayout(FlowLayout.LEFT));

btn=new Button("Закрыть");

setSize(300,200);

add(btn);

btn.addActionListener(this);

setVisible(true);

}

public void actionPerformed(ActionEvent ae){

this.dispose();

}

}

}

 

На рисунке 3.2 показан результат работы программы:

 

Рис. 3.2. Результат работы программы, приведенной в листинге Frame1.java

 

 


 


Контроль знаний

 



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 221; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.61.223 (0.02 с.)