Разработка апплета, реализующего функции интерфейса пользователя, на основе технологии 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