Разработка апплета, реализующего функции интерфейса пользователя, на основе технологии JavaBeans

Разработка компонентов JavaBeans, в которых для организации графического интерфейса пользователя используются возможности пакета AWT. Апплет на основе Bean-компонентов. Исходный код, сгенерированный в среде Jdeveloper. Html-страница для апплета.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.03.2011
Размер файла 159,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

1

Размещено на http://www.allbest.ru/

Федеральное государственное образовательное учреждение

Высшего профессионального образования

"ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ПУТЕЙ СООБЩЕНИЯ"

Кафедра “ Информационные и вычислительные системы”

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

по дисциплине "Программирование на языке Java"

на тему:

"Разработка апплета,

реализующего функции интерфейса пользователя,

на основе технологии JavaBeans"

Выполнил: студен группы ПВТ-811

Сергеев С.А.

Руководитель: к. т. н.,

доц. Кожомбердиева Г.И.

С. - Петербург 2010

Задание

В качестве исходных данных к курсовому проекту используется апплет-результат выполнения лабораторной работы № 3 "Разработка интерфейса пользователя с помощью пакета AWT" (вариант 10).

Необходимо разработать функционально идентичный интерфейс пользователя на основе Bean-компонентов.

С этой целью требуется:

1. разработать Bean-компоненты, поддерживающие реализацию функций интерфейса отдельных панелей - составных частей исходного апплета;

2. создать апплет на основе разработанных Bean-компонентов с использованием среды визуального программирования JDeveloper.

Созданный апплет должен быть идентичен исходному апплету-заданию и корректно запускаться в Web-браузере.

Аннотация

В курсовом проекте разрабатываются компоненты JavaBeans, в которых для организации графического интерфейса пользователя используются возможности пакета AWT. Далее на основе разработанных Bean-компонентов создается апплет.

Апплет состоит из трёх разработанных компонентов. В первом Bean-компоненте на компонавке CardLayout распологаются 3 панели, на которых расположены элементы управления сектором. На втором Bean-компоненте располагаются кнопки для управления первым компоненотом. В третьем Bean-компоненте располагается сам сектор. При создании апплета применяется среда визуального программирования Jdeveloper.

Содержание

  • Задание
  • Аннотация
  • Введение
  • 1. Исходный апплет
  • 2. Компоненты JavaBeans
  • 2.1 КомпонентFirstBean
  • 2.2 Компонент SecondBean
  • 2.3 Компонент ThirdBean
  • 3. Апплет на основе Bean-компонентов
  • 3.1 Исходный код, сгенерированный в среде Jdeveloper
  • 3.2.html-страница для апплета
  • Список использованных источников

Введение

Компонентная архитектура программного обеспечения JavaBeans появилась в 1997 году в версии Java - JDK 1.1.

JavaBeans - значительное усовершенствование Java в версии JDK 1.1 В составе ядра Java API появился пакет java. beans.

В настоящее время в области Web-программирования лидирует и активно используется технология EJB (Enterprise Java Beans).

Java Bean-компонент является программым компонентом, который разработан так, чтобы многократно использоваться в различныхсрадах.

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

Задачей курсового проектированя является разработка Bean-компонентов.

1. Исходный апплет

Рисунок 1 - Исходный апплет

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

Исходный код апплета

import java. applet. Applet;

import java. awt. *;

import java. awt. event. *;

// Класс панели с полосой прокрутки, меткой и текстовым полем

// для представления составляющей цвета

// Основной класс

public class ColorAdjustment extends Applet implements

ActionListener, ItemListener, AdjustmentListener

{

Panel p1, p2,p3,p3_1,p3_2,p4,p4_1,p4_2,p5,ph; // Панели

Canvas c5; // panel dl9 risovani9

Button b1_1,b1_2,b1_3,b1_4; // Knopki pervoi paneli

Button b3_1,b3_2,b3_3,b3_4,b3_5,b3_6,b3_7,b3_8,b3_9,b3_10;

Button b4_1, b4_2,b4_3; // Кнопки 4-й панели

Scrollbar sb5; // Полоса прокрутки для 5-й панели

Checkbox ch4_1,ch4_2; // radio knopki

CheckboxGroup cbg4; // gruppa dl9 radio knopok

Choice choice2; // razdvignoi elevtnt

Label lb1,lb2,lb3_1,lb3_2; // nadpisi

int diametr=40;

Color col=Color. black;

int s_angle=0;

int end_angle=10;

CardLayout card=new CardLayout (); // menedger kompanovki karto4nii

void drawPanels (int i)

{

if (i==1)

card. show (ph,"Card1");

if (i==2)

card. show (ph,"Card2");

if (i==3)

card. show (ph,"Card3");

}

public void actionPerformed (ActionEvent e)

{

String ac=e. getActionCommand ();

// paneli

if ("Диаметр". equals (ac))

drawPanels (1);

if ("Цвет". equals (ac))

drawPanels (2);

if ("Угол". equals (ac))

drawPanels (3);

// ygol

if ("10". equals (ac))

{

end_angle=10;

c5. repaint ();

}

if ("40". equals (ac))

{

end_angle=40;

c5. repaint ();

}

if ("80". equals (ac))

{

end_angle=80;

c5. repaint ();

}

if ("300". equals (ac))

{

end_angle=300;

c5. repaint ();

}

// na4alo

if ("0". equals (ac))

{

s_angle=0;

c5. repaint ();

}

if ("20". equals (ac))

{

s_angle=20;

c5. repaint ();

}

if ("90". equals (ac))

{

s_angle=90;

c5. repaint ();

}

if ("270". equals (ac))

{

s_angle=270;

c5. repaint ();

}

// diametri

if ("50". equals (ac))

{

diametr=50;

c5. repaint ();

sb5. setValue (50);

}

if ("60". equals (ac))

{

diametr=60;

c5. repaint ();

sb5. setValue (60);

}

if ("70". equals (ac))

{

diametr=70;

c5. repaint ();

sb5. setValue (70);

}

}

public void itemStateChanged (ItemEvent e)

{

c5. repaint ();

}

public void adjustmentValueChanged (AdjustmentEvent e)

{

diametr=sb5. getValue ();

c5. repaint ();

}

public void init ()

{ // sozdanie panelei

setLayout (new GridLayout (3, 1));

// perva9 panel

p1 = new Panel ();

p1. setBackground (Color. red);

lb1=new Label ("Выбор диаметра");

p1. add (lb1);

b1_1=new Button ("40");

b1_1. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

diametr=40;

c5. repaint ();

sb5. setValue (40);

}

});

p1. add (b1_1);

b1_2=new Button ("50");

b1_2. addActionListener (this);

p1. add (b1_2);

b1_3=new Button ("60");

b1_3. addActionListener (this);

p1. add (b1_3);

b1_4=new Button ("70");

b1_4. addActionListener (this);

p1. add (b1_4);

// vtora9 panel

p2 = new Panel ();

p2. setBackground (Color. red);

lb2=new Label ("Выбор цвета");

p2. add (lb2);

choice2=new Choice ();

choice2. setBackground (Color. white);

choice2. addItem ("Чёрный");

choice2. addItem ("Красный");

choice2. addItem ("Жёлтый");

choice2. addItem ("Синий");

choice2. addItemListener (this);

p2. add (choice2);

// tret9 panel

p3 = new Panel ();

p3. setBackground (Color. red);

p3. setLayout (new GridLayout (1,2));

p3_1=new Panel ();

p3_1. setBackground (Color. red);

lb3_1=new Label ("Начало: ");

p3_1. add (lb3_1);

b3_1=new Button ("0");

b3_2=new Button ("20");

b3_3=new Button ("90");

b3_4=new Button ("180");

b3_5=new Button ("270");

b3_1. addActionListener (this);

b3_2. addActionListener (this);

b3_3. addActionListener (this);

b3_4. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

s_angle=180;

c5. repaint ();

}

});

b3_5. addActionListener (this);

p3_1. add (b3_1);

p3_1. add (b3_2);

p3_1. add (b3_3);

p3_1. add (b3_4);

p3_1. add (b3_5);

// // //

p3_2=new Panel ();

p3_2. setBackground (Color. red);

lb3_2=new Label ("Угол: ");

p3_2. add (lb3_2);

b3_6=new Button ("10");

b3_7=new Button ("40");

b3_8=new Button ("80");

b3_9=new Button ("180");

b3_10=new Button ("300");

b3_6. addActionListener (this);

b3_7. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

end_angle=40;

c5. repaint ();

}

});

b3_8. addActionListener (this);

b3_9. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

end_angle=180;

c5. repaint ();

}

});

b3_10. addActionListener (this);

p3_2. add (b3_6);

p3_2. add (b3_7);

p3_2. add (b3_8);

p3_2. add (b3_9);

p3_2. add (b3_10);

p3. add (p3_1);

p3. add (p3_2);

// panel 4

p4=new Panel ();

p4. setLayout (new GridLayout (1,2));

p4_1=new Panel ();

p4_1. setBackground (Color. yellow);

p4_1. setLayout (new GridLayout (3,1,5,5));

b4_1=new Button ("Диаметр");

b4_2=new Button ("Цвет");

b4_3=new Button ("Угол");

b4_1. addActionListener (this);

b4_2. addActionListener (this);

b4_3. addActionListener (this);

p4_1. add (b4_1);

p4_1. add (b4_2);

p4_1. add (b4_3);

//

p4_2=new Panel ();

p4_2. setBackground (Color. yellow);

p4_2. setLayout (new GridLayout (2,1));

CheckboxGroup cbg4 = new CheckboxGroup ();

ch4_1=new Checkbox ("Сектор", cbg4, true);

ch4_2=new Checkbox ("Дуга", cbg4, false);

ch4_1. addItemListener (this);

ch4_2. addItemListener (this);

p4_2. add (ch4_1);

p4_2. add (ch4_2);

// p4_2. add (cbg4);

p4. add (p4_1);

p4. add (p4_2);

// panel 5

c5=new Canvas ()

{

public void paint (Graphics g)

{

// ystanovka zveta

String s=choice2. getSelectedItem ();

if ("Чёрный". equals (s))

col=Color. black;

if ("Красный". equals (s))

col=Color. red;

if ("Жёлтый". equals (s))

col=Color. yellow;

if ("Синий". equals (s))

col=Color. blue;

g. setColor (col);

// // /

if (ch4_1. getState () ==true)

g. fillArc (this. getSize (). width/2-diametr/2,this. getSize (). height/2-diametr/2,diametr,diametr,s_angle,end_angle);

if (ch4_2. getState () ==true)

g. drawArc (this. getSize (). width/2-diametr/2,this. getSize (). height/2-diametr/2,diametr,diametr,s_angle,end_angle);

}

};

sb5=new Scrollbar (Scrollbar. HORIZONTAL,40,1,40,70);

sb5. addAdjustmentListener (this);

c5. setBackground (Color. green);

p5=new Panel ();

p5. setLayout (new BorderLayout ());

p5. add (sb5,BorderLayout. SOUTH);

p5. add (c5);

// tri paneli sverhy

ph=new Panel ();

ph. setLayout (card);

ph. add (p1,"Card1");

ph. add (p2,"Card2");

ph. add (p3,"Card3");

add (ph);

add (p4);

add (p5);

drawPanels (1);

}

}

2. Компоненты JavaBeans

Компонентом программного обеспечения называется часть программы, изолированная в отдельном элементе с целью повторного использования. Компоненты могут быть написаны и откомпилированы независимо друг от друга, а затем использованы для построения сложных приложений.

Bean-компонент - это основанный на спецификации JavaBeans элемент программного обеспечения, который предназначен для повторного использования и которым можно управлять визуально в интегрированной среде разработки.

Класс Bean-компонента должен удовлетворять следующим требованиям:

1. Способность к инициализации нового экземпляра (объекта).

2. Наличие принимаемого по умолчанию конструктора.

3. Возможность сериализации.

4. Использование модели делегирования событий.

5. Совместимость со стандартами проектирования компонентов JavaBeans.

Используются простые соглашения об именах

Создается дополнительный класс BeanInfo, который явно поставляет эту информацию.

В данном курсовом проекте разработаны три Bean-компонента.

2.1 КомпонентFirstBean

Первая панель:

Вторая панель:

Третья панель:

Рисунок 2 - Компонент FirstBean

Данный компонент отвечает за внешний вид сектора

Исходный код компонента

FirstBean. java

package javabeansproject;

import java. awt. Button;

import java. awt. CardLayout;

import java. awt. Choice;

import java. awt. Color;

import java. awt. GridLayout;

import java. awt. Label;

import java. awt. LayoutManager;

import java. awt. Panel;

import java. awt. event. ActionEvent;

import java. awt. event. ActionListener;

import java. awt. event. ItemEvent;

import java. awt. event. ItemListener;

import java. beans. PropertyChangeListener;

import java. beans. PropertyChangeSupport;

public class FirstBean extends Panel implements ActionListener, ItemListener {

Panel p1, p2,p3,p3_1,p3_2,ph;

Button b1_1,b1_2,b1_3,b1_4; // Knopki pervoi paneli

Button b3_1,b3_2,b3_3,b3_4,b3_5,b3_6,b3_7,b3_8,b3_9,b3_10;

Choice choice2; // razdvignoi elevtnt

Label lb1,lb2,lb3_1,lb3_2; // nadpisi

CardLayout card=new CardLayout (); // menedger kompanovki karto4nii

PropertyChangeSupport pcs;

public void drawPanels (int i)

{

if (i==1)

card. show (ph,"Card1");

if (i==2)

card. show (ph,"Card2");

if (i==3)

card. show (ph,"Card3");

}

public void itemStateChanged (ItemEvent e)

{

Color col=new Color (0,0,0);

if ("Чёрный". equals (choice2. getSelectedItem ()))

col=Color. black;

if ("Красный". equals (choice2. getSelectedItem ()))

col=Color. red;

if ("Жёлтый". equals (choice2. getSelectedItem ()))

col=Color. yellow;

if ("Синий". equals (choice2. getSelectedItem ()))

col=Color. blue;

pcs. firePropertyChange ("Цвет", Color. pink,col);

}

public void actionPerformed (ActionEvent e)

{

String ac=e. getActionCommand ();

// ygol

if ("10". equals (ac))

{

pcs. firePropertyChange ("Конец", 0,10);

}

if ("40". equals (ac))

{

pcs. firePropertyChange ("Конец", 0, 40);

}

if ("80". equals (ac))

{

pcs. firePropertyChange ("Конец", 0, 80);

}

if ("300". equals (ac))

{

pcs. firePropertyChange ("Конец", 0, 300);

}

// na4alo

if ("0". equals (ac))

{

pcs. firePropertyChange ("Начало", 10, 0);

}

if ("20". equals (ac))

{

pcs. firePropertyChange ("Начало", 0, 20);

}

if ("90". equals (ac))

{

pcs. firePropertyChange ("Начало", 0, 90);

}

if ("270". equals (ac))

{

pcs. firePropertyChange ("Начало", 0, 270);

}

// diametri

if ("50". equals (ac))

{

pcs. firePropertyChange ("Диаметр", 0, 50);

}

if ("60". equals (ac))

{

pcs. firePropertyChange ("Диаметр", 0, 60);

}

if ("70". equals (ac))

{

pcs. firePropertyChange ("Диаметр", 0, 70);

}

}

public FirstBean (LayoutManager layoutManager) {

super (layoutManager);

}

public FirstBean () {

super ();

pcs=new PropertyChangeSupport (this);

setLayout (new GridLayout ());

// perva9 panel

p1 = new Panel ();

p1. setBackground (Color. red);

lb1=new Label ("Выбор диаметра");

p1. add (lb1);

b1_1=new Button ("40");

b1_1. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

pcs. firePropertyChange ("Диаметр", 0, 40);

}

});

p1. add (b1_1);

b1_2=new Button ("50");

b1_2. addActionListener (this);

p1. add (b1_2);

b1_3=new Button ("60");

b1_3. addActionListener (this);

p1. add (b1_3);

b1_4=new Button ("70");

b1_4. addActionListener (this);

p1. add (b1_4);

// vtora9 panel

p2 = new Panel ();

p2. setBackground (Color. red);

lb2=new Label ("Выбор цвета");

p2. add (lb2);

choice2=new Choice ();

choice2. setBackground (Color. white);

choice2. addItem ("Чёрный");

choice2. addItem ("Красный");

choice2. addItem ("Жёлтый");

choice2. addItem ("Синий");

choice2. addItemListener (this);

p2. add (choice2);

// tret9 panel

p3 = new Panel ();

p3. setBackground (Color. red);

p3. setLayout (new GridLayout (1,2));

p3_1=new Panel ();

p3_1. setBackground (Color. red);

lb3_1=new Label ("Начало: ");

p3_1. add (lb3_1);

b3_1=new Button ("0");

b3_2=new Button ("20");

b3_3=new Button ("90");

b3_4=new Button ("180");

b3_5=new Button ("270");

b3_1. addActionListener (this);

b3_2. addActionListener (this);

b3_3. addActionListener (this);

b3_4. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

pcs. firePropertyChange ("Начало", 0, 180);

}

});

b3_5. addActionListener (this);

p3_1. add (b3_1);

p3_1. add (b3_2);

p3_1. add (b3_3);

p3_1. add (b3_4);

p3_1. add (b3_5);

// // //

p3_2=new Panel ();

p3_2. setBackground (Color. red);

lb3_2=new Label ("Угол: ");

p3_2. add (lb3_2);

b3_6=new Button ("10");

b3_7=new Button ("40");

b3_8=new Button ("80");

b3_9=new Button ("180");

b3_10=new Button ("300");

b3_6. addActionListener (this);

b3_7. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

pcs. firePropertyChange ("Конец", 0, 40);

}

});

b3_8. addActionListener (this);

b3_9. addActionListener (new ActionListener ()

{

public void actionPerformed (ActionEvent e)

{

pcs. firePropertyChange ("Конец", 0, 180);

}

});

b3_10. addActionListener (this);

p3_2. add (b3_6);

p3_2. add (b3_7);

p3_2. add (b3_8);

p3_2. add (b3_9);

p3_2. add (b3_10);

p3. add (p3_1);

p3. add (p3_2);

ph=new Panel ();

ph. setLayout (card);

ph. add (p1,"Card1");

ph. add (p2,"Card2");

ph. add (p3,"Card3");

add (ph);

drawPanels (1);

}

public void addPropertyChangeListener (PropertyChangeListener pcl) {

pcs. addPropertyChangeListener (pcl);

}

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

public void removePropertyChangeListener (PropertyChangeListener pcl) {

pcs. removePropertyChangeListener (pcl);

}

}

апплет графический интерфейс пользователь

2.2 Компонент SecondBean

Рисунок 3 - Компонент SecondBean

В данном компоненте выбирается панель для первого компонента и значение сектор/дуга для третьего.

Исходный код компонента

SecondBean. java

package javabeansproject;

import java. awt. Button;

import java. awt. Checkbox;

import java. awt. CheckboxGroup;

import java. awt. Color;

import java. awt. GridLayout;

import java. awt. LayoutManager;

import java. awt. Panel;

import java. awt. event. ActionEvent;

import java. awt. event. ActionListener;

import java. awt. event. ItemEvent;

import java. awt. event. ItemListener;

import java. beans. PropertyChangeListener;

import java. beans. PropertyChangeSupport;

public class SecondBean extends Panel implements ActionListener, ItemListener {

Panel p4_1,p4_2;

Button b4_1, b4_2,b4_3; // Кнопки 4-й панели

Checkbox ch4_1,ch4_2; // radio knopki

CheckboxGroup cbg4; // gruppa dl9 radio knopok

PropertyChangeSupport pcs;

public SecondBean (LayoutManager layoutManager) {

super (layoutManager);

}

public SecondBean () {

super ();

pcs=new PropertyChangeSupport (this);

// panel 4

setLayout (new GridLayout (1,2));

p4_1=new Panel ();

p4_1. setBackground (Color. yellow);

p4_1. setLayout (new GridLayout (3,1,5,5));

b4_1=new Button ("Диаметр");

b4_2=new Button ("Цвет");

b4_3=new Button ("Угол");

b4_1. addActionListener (this);

b4_2. addActionListener (this);

b4_3. addActionListener (this);

p4_1. add (b4_1);

p4_1. add (b4_2);

p4_1. add (b4_3);

//

p4_2=new Panel ();

p4_2. setBackground (Color. yellow);

p4_2. setLayout (new GridLayout (2,1));

CheckboxGroup cbg4 = new CheckboxGroup ();

ch4_1=new Checkbox ("Сектор", cbg4, true);

ch4_2=new Checkbox ("Дуга", cbg4, false);

ch4_1. addItemListener (this);

ch4_2. addItemListener (this);

p4_2. add (ch4_1);

p4_2. add (ch4_2);

// p4_2. add (cbg4);

add (p4_1);

add (p4_2);

}

public void actionPerformed (ActionEvent e)

{

String ac=e. getActionCommand ();

// paneli

if ("Диаметр". equals (ac))

{

pcs. firePropertyChange ("Компановка", 0, 1);

}

if ("Цвет". equals (ac))

{

pcs. firePropertyChange ("Компановка", 0,2);

}

if ("Угол". equals (ac))

{

pcs. firePropertyChange ("Компановка", 0,3);

}

}

public void itemStateChanged (ItemEvent e)

{

if (ch4_1. getState ())

pcs. firePropertyChange ("Сектор", 0, true);

if (ch4_2. getState ())

pcs. firePropertyChange ("Сектор", 0, false);

}

// метод регистрации блока прослушивания

public void addPropertyChangeListener (PropertyChangeListener pcl) {

pcs. addPropertyChangeListener (pcl);

}

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

public void removePropertyChangeListener (PropertyChangeListener pcl) {

pcs. removePropertyChangeListener (pcl);

}

}

2.3 Компонент ThirdBean

Рисунок 4 - Компонент ThirdBean

Данный компонент отвечает за прорисовку сектора.

Исходный код компонента.

ThirdBean. java

package javabeansproject;

import java. awt. Canvas;

import java. awt. Color;

import java. awt. Graphics;

import java. awt. GraphicsConfiguration;

import java. beans. PropertyChangeEvent;

import java. beans. PropertyVetoException;

import java. beans. VetoableChangeListener;

import java. beans. VetoableChangeSupport;

public class ThirdBean extends Canvas {

private VetoableChangeSupport vcs=new VetoableChangeSupport (this);

int diametr=40;

Color col=Color. black;

int s_angle=0;

int end_angle=10;

boolean fill=true; // 1-закрашеный круг,0-окружность

// // // // // // // // // // // // // // /

public void addVetoableChangeListener (VetoableChangeListener vcl)

{vcs. addVetoableChangeListener (vcl); }

public void removeVetoableChangeListener (VetoableChangeListener vcl)

{vcs. removeVetoableChangeListener (vcl); }

// // // // // // // // // // // // // // /

public int getDiametr ()

{return diametr; }

public Color getCol ()

{return col; }

public int getS_angle ()

{return s_angle; }

public int getEnd_angle ()

{return end_angle; }

public boolean getFill ()

{return fill; }

// // // // // // // // // // // // // // // // // // // // // // // // // // // // /

public void setDiametr (int i)

{

try

{

vcs. fireVetoableChange ("diametr", new Integer (diametr), new Integer (i));

diametr=i;

}

catch (PropertyVetoException e) {System. out. println (e. toString ()); }

}

public void setCol (Color c)

{

col=c;

}

public void setS_angle (int i)

{

s_angle=i;

}

public void setEnd_angle (int i)

{

end_angle=i;

}

public void setFill (boolean q)

{

fill=q;

}

// // // // // // // // // // // // // // // // //

public ThirdBean (GraphicsConfiguration graphicsConfiguration) {

super (graphicsConfiguration);

}

public ThirdBean () {

super ();

}

public void paint (Graphics g)

{

// ystanovka zveta

g. setColor (col);

if (fill)

g. fillArc (this. getSize (). width/2-diametr/2,this. getSize (). height/2-diametr/2,diametr,diametr,s_angle,end_angle);

if (! fill)

g. drawArc (this. getSize (). width/2-diametr/2,this. getSize (). height/2-diametr/2,diametr,diametr,s_angle,end_angle);

}

}

Исходный код ThirdBeanBeanInfo. java

package javabeansproject;

import java. beans. SimpleBeanInfo;

import java. beans. *;

// Класс BeanInfo для компонента Bean1

public class ThirdBeanBeanInfo extends SimpleBeanInfo {

// Класс Bean-компонента Bean1

private final static Class beanClass =ThirdBean. class;

// В таблице свойств для компонента Bean1 будут показаны только свойства,

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

public PropertyDescriptor [] getPropertyDescriptors ()

{

try

{

// Экземпляр класса PropertyDescriptor создаётся для каждого свойства.

PropertyDescriptor diametr = new PropertyDescriptor ("diametr", beanClass);

PropertyDescriptor col = new PropertyDescriptor ("col", beanClass);

PropertyDescriptor s_angle = new PropertyDescriptor ("s_angle", beanClass);

PropertyDescriptor end_angle = new PropertyDescriptor ("end_angle", beanClass);

PropertyDescriptor fill = new PropertyDescriptor ("fill", beanClass);

// массив дескрипторов

PropertyDescriptor rv [] = {diametr,col,s_angle,end_angle,fill};

return rv;

}

catch (IntrospectionException e)

{

throw new Error (e. toString ());

}

}

// В списке событий, поддерживаемых компонентом ThirdBean, будут

// представлены только события, дескрипторы которых возвращаются

// данным методом в массиве дескрипторов:

public EventSetDescriptor [] getEventSetDescriptors ()

{

try{

EventSetDescriptor [] rv = new EventSetDescriptor [1];

rv [0] = new EventSetDescriptor (beanClass,"vetoableChange",

VetoableChangeListener. class,"vetoableChange");

return rv;

}

catch (IntrospectionException e)

{

throw new Error (e. toString ());

}

}

// Здесь указываются методы, которые будут доступны компоненту

// Только они будут показаны в списке методов данного компонента

public MethodDescriptor [] getMethodDescriptors ()

{

return new MethodDescriptor [0];

}

}

3. Апплет на основе Bean-компонентов

Рисунок 5 - Апплет на основе Bean-компонентов

Апплет на основе разработанных Bean-компонентов с использованием среды визуального программирования JDeveloper, представляет собой апплет, в котором размещены три Bean-компонента.

3.1 Исходный код, сгенерированный в среде Jdeveloper

ColorAdjastment. java

package kurs_p;

import java. applet. Applet;

import java. awt. BorderLayout;

import java. awt. Color;

import java. awt. GridLayout;

import java. awt. Panel;

import java. awt. Scrollbar;

import java. awt. event. AdjustmentEvent;

import java. awt. event. AdjustmentListener;

import java. beans. PropertyChangeEvent;

import java. beans. PropertyChangeListener;

import java. beans. PropertyVetoException;

import java. beans. VetoableChangeListener;

import javabeansproject. FirstBean;

import javabeansproject. SecondBean;

import javabeansproject. ThirdBean;

public class ColorAdjastment extends Applet implements AdjustmentListener{

Panel p5; // Панели

// panel dl9 risovani9

Scrollbar sb5;

FirstBean p1;

SecondBean p2;

ThirdBean c3;

private GridLayout gridLayout1 = new GridLayout ();

public void adjustmentValueChanged (AdjustmentEvent e)

{

c3. setDiametr (sb5. getValue ());

c3. repaint ();

}

private void jbInit () throws Exception {

p1=new FirstBean ();

p1. addPropertyChangeListener (new PropertyChangeListener ()

{

public void propertyChange (PropertyChangeEvent e) {

if (e. getPropertyName (). equals ("Конец"))

{

Integer X= (Integer) e. getNewValue ();

int x=X. intValue ();

c3. setEnd_angle (x);

c3. repaint ();

}

if (e. getPropertyName (). equals ("Начало"))

{

Integer X= (Integer) e. getNewValue ();

int x=X. intValue ();

c3. setS_angle (x);

c3. repaint ();

}

if (e. getPropertyName (). equals ("Диаметр"))

{

Integer X= (Integer) e. getNewValue ();

int x=X. intValue ();

c3. setDiametr (x);

c3. repaint ();

sb5. setValue (x);

}

if (e. getPropertyName (). equals ("Цвет"))

{

Color X= (Color) e. getNewValue ();

c3. setCol (X);

c3. repaint ();

}

}

});

p2=new SecondBean ();

p2. addPropertyChangeListener (new PropertyChangeListener ()

{

public void propertyChange (PropertyChangeEvent e) {

if (e. getPropertyName (). equals ("Компановка"))

{

Integer X= (Integer) e. getNewValue ();

int x=X. intValue ();

p1. drawPanels ( (x));

}

if (e. getPropertyName (). equals ("Сектор"))

{

Boolean X= (Boolean) e. getNewValue ();

boolean x=X. booleanValue ();

c3. setFill (x);

c3. repaint ();

}

}

});

c3=new ThirdBean ();

c3. addVetoableChangeListener (new VetoableChangeListener ()

{ public void vetoableChange (PropertyChangeEvent pce) throws PropertyVetoException

{

try

{

Integer d= (Integer) pce. getNewValue ();

int di=d. intValue ();

if (di<40||di>70)

throw new PropertyVetoException ("Значение свойства diametr должно быть в дипазоне от 40 до70",pce);

}catch (ClassCastException e)

{System. out. println ("Изменённое свойство не имело тип Integer!!!"); }

}

});

sb5=new Scrollbar (Scrollbar. HORIZONTAL,40,1,40,72);

sb5. addAdjustmentListener (this);

c3. setBackground (Color. green);

p5=new Panel ();

p5. setLayout (new BorderLayout ());

p5. add (sb5,BorderLayout. SOUTH);

p5. add (c3);

this. setLayout (new GridLayout (3,1));

p1. setLayout (gridLayout1);

this. add (p1, null);

this. add (p2, null);

this. add (p5, null);

}

public void init () {

try {

jbInit ();

} catch (Exception e) {

e. printStackTrace ();

}

}

public void start () {

}

public void stop () {

}

public void destroy () {

}

}

3.2.html-страница для апплета

Чтобы апплет корректно запускался в среде Web-браузера, необходимо, чтобы были доступны классы компонентов. Поэтому разместим в папке скомпилированный класс апплета, архив компонентов и HTML-страницу.

HTML-страница для разработанного апплета:

kurs_p.html

<! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN" "http://www.w3.org/TR/html4/loose. dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></meta>

<title>kurs_p</title>

</head>

<body>

<APPLET

CODE = kurs_p. ColorAdjastment. class

NAME = Lr21

WIDTH = 325

HEIGHT = 250>

</APPLET>

</body>

</html>

Список использованных источников

1. Технология JavaBeans: Электронное уч. пос. - СПб.: ПГУПС, Кафедра "Информационные и вычислительные системы", 2002

2. Кожомбердиева Г.И., Сорокина М.И., Куранова О.Н. Работа в среде JDeveloper Oracle 9i. Методические указания. - СПб.: ПГУПС, 2004.

3. Java 2 SDK, Standard Edition Documentation, version 1.2.2.

4. Ноутон П., Шилдт Г. Java 2: Пер. с англ. - СПб.: БХВ-Петербург, 2000.

Размещено на Allbest.ru


Подобные документы

  • Описание пакета прикладной программы Net Beans 8.1. Разработка пользовательского интерфейса апплета. Создание рамочных окон на базе фреймов библиотеки java.swing. Изменение цвета текстовых данных. Проектирование и создание инфологической модели апплета.

    контрольная работа [1,8 M], добавлен 11.07.2016

  • Основные понятия и назначение технологии JavaBeans, ее компоненты и принцип работы, преимущества. Методика создания jar файлов в среде Eclipse. Структура файлов манифеста. Создание многопоточных приложений. Изучение визуального редактора Java BeanBox.

    лабораторная работа [67,4 K], добавлен 30.06.2009

  • Разработка Java-апплета, имеющего возможность обращения к локальной файловой системе при предоставлении соответствующих прав доступа. Упаковка апплета в архивный JAR-файл для его подписания электронной цифровой подписью, создание ключей и сертификата.

    курсовая работа [540,2 K], добавлен 08.06.2011

  • Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.

    дипломная работа [3,3 M], добавлен 18.02.2017

  • Разработка визуального интерфейса пользователя, на основе экранных форм среды Delphi и визуальных компонент. Основные типы данных, используемые в программе MD 5 Calc. Однонаправленные хэш-функции. Процесс хэширования MD5, возможности его применения.

    курсовая работа [433,1 K], добавлен 28.08.2012

  • Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.

    курсовая работа [660,4 K], добавлен 08.03.2015

  • Совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером. Классификация интерфейсов, текстовый режим работы видеоадаптера. Функции текстового режима. Реализация пользовательского интерфейса в BORLAND C++.

    лабораторная работа [405,1 K], добавлен 06.07.2009

  • Разработка информационного обеспечения задачи, определение логической структуры реляционной базы данных. Разработка запросов и отчетов для обработки и отображения информации, интерфейса пользователя. Методика и этапы физического проектирования задачи.

    курсовая работа [33,5 K], добавлен 25.07.2012

  • Метод извлечения информации о личностных характеристиках пользователя с помощью технологии распознавания лица. Разработка алгоритма работы рекомендательной системы, основанной на психологическом портрете пользователя, хранилища баз данных и интерфейса.

    курсовая работа [815,2 K], добавлен 21.09.2016

  • Технология разработки пользовательского интерфейса в среде Delphi. Создание таблицы, меню, форм для ввода и редактирования данных. Принципы организации меню как элемента интерфейса пользователя. Реализация сортировки, фильтрации, вычислений в таблице.

    курсовая работа [1,6 M], добавлен 13.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.