Создание визуального интерфейса на Java

Под визуальным интерфейсом понимается окно с размещенными на нем элементами — кнопками, текстовыми полями, меню, списками и пр. В предыдущем примере мы размещали кнопки. Это делалось в конструкторе так:

public labl()

{

setLayout(null);

add (Ы) ; add(b2); add (b3) ;

Ы.addActionListener(this) ; b2.addActionListener(this) ; b3.addActionListener(this) ;

Ы.setBounds(20,20,100,20) ; b2.setBounds (20,50,100,20); b3.setBounds(20,80,100,20); setBackground(new Color(120,200,120));

}

Кнопки добавляются так:

add (Ы) ; add(b2); add (b3) ;

Позиции размещения кнопок и их размеры задаются так:

Ы.setBounds(20,20,100, 20) ; b2.setBounds (20,50,100,20); b3.setBounds(20,80,100,20);

Метод setBounds (x, у, w, h) использует в качестве аргументов x, у — координаты верхнего левого угла элемента на форме (апплете); w — ширина элемента в пикселах, h — его длина. В рассматриваемой программе мы сами размещали элементы в окне. Java имеет компоновщики для автоматического размещения элементов. Компоновщик включается в программу оператором setLayout. В нашем случае использование автоматического компоновщика блокируется указанием параметра nuii в операторе setLayout. В качестве альтернативного примера приведем использование компоновщика BorderLayout. Этот компоновщик размещает всего пять элементов: в центре

(BorderLayout.CENTER), справа (BorderLayout.EAST), слева (BorderLayout.WEST), сверху (BorderLayout.NORTH) И ВНИЗу (BorderLayout.SOUTH).

Вот как это следует сделать (приводим фрагмент класса labl с конструктором):

public class labl extends Frame implements ActionListener {

Book book;

Button bl=new Button("Exit");

Button b2=new Button("Create Object");

Button b3=new Button("Show Object");

Label lb=new Label("INTRODUCTION in JAVA"); // добавлено TextField tf = new TextField(); // добавлено

public labl()

{

setLayout(new BorderLayout()); // изменено add(tf,BorderLayout.SOUTH); // добавлено add(bl,BorderLayout.WEST); // изменено add(b2,Во rde rLayout.CENTER); // изменено add(b3,BorderLayout.EAST); // изменено add(lb,BorderLayout.NORTH); // добавлено Ы.addActionListener(this) ; b2.addActionListener(this) ; b3.addActionListener(this) ; bl.setBounds(20,20,100,20); // бесполезен b2.setBounds(20,50,100,20); // бесполезен b3.setBounds(20,80,100,20); // бесполезен setBackground(new Color(120,200,120));

}

В окно добавлены еще ярлык (Labei) и текстовое поле (TextField). Результат изменения конструкторатакой (рис. 1.7).

Теперь вывод строки "Pinoccio" осуществляется не непосредственно в окно, а в текстовое поле. С этой целью следует несколько изменить обработчик события от программной кнопки

(Button):

public void actionPerformed (ActionEvent e)

if (e.getSource()==bl)

System.exit(0); else

if (e.getSource()==b2)

{

if (book == null) book=new Book("Pinoccio",200); else

System.out.println("The object already exists");

}

else

if (e.getSource()==b3)

{

if(book!=null)

{

Graphics g= getGraphics (); // бесполезна

// this.setForeground(newColor(250,0,0)); // удалено // g.drawString(book.title.toUpperCase(),20,200);

// удалено

tf.setText(book.title.toUpperCase()); // добавлено

}

}

}

Рис. 1.7. Использование компоновщика BorderLayout

Переменная tf представляет объектную переменную типа текстового поля. Добавление в текстовое поле текста реализуется методом setText () класса TextField.

Итак, следует понимать, что создание визуального интерфейса выполняется на основе окна. В java окнами являются объекты типа Frame, Panel, Dialog и Applet. Апплеты мы будем рассматривать позже. Это окна, которые отображает и обрабатывает программа Internet Explorer. Для добавления элементов в окно используется метод add() класса Frame (Applet) . Длядобавления на Panei используется класс container. Элементы должны быть размещены в окне, что выполняется пользователем или системой. Для использования автоматического укладчика его требуется создать. Мы делали это командой:

setLayout(new BorderLayout());

Имеются другие ТИПЫ укладчиков, отличные ОТ BorderLayout.

Источник: Герман О. B., Герман Ю. О., Программирование на Java и C# для студента. — СПб.: БХВ-Петербург, 2005. — 512 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100