![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
PBut.addActionListener(new ActionListener()Содержание книги
Поиск на нашем сайте
{ Public void actionPerformed(ActionEvent aE) { System.out.println ("OkButton"); If (run) { run= false; Suspend (); } Else if (!run) { run= true; Resume (); } } }); this.setSize(400, 300); //--------------- pChildForm= new Frame (); pChildForm.setLocation(250, 10); pChildForm.setSize(250, 250); pChildForm.setTitle("User"); pChildForm.show (); pChildForm.add(pBut); this.show(); } //------------------------- public static void main () { User u= new User(); }
} /* Результат: Появились прикладное окно с перемещающимися шарами и дочернее окно с кнопкой. При нажатии на кнопку можно приостанавливать или возобновлять движение шаров. */
Этап 6. Добавление элемента списка
Этот этап предпоследний. Добавим в дочернее окно управляющий элемент-список для выбора одного из трёх цветов шаров. Диаграмма классов и реализация последнего этапа представлены на рис. 4.3.6.1 и в примерах 4.3.6.1 и 4.3.6.2. Рис. 5.3.6.1. Диаграмма классов Balls–приложения шестого этапа
Пример 5.3.6.1. Реализация шестого этапа разработки Balls–приложения. //////////////////// // C# File BallsCs6.cs // Файл BallsCs6.cs полностью включает файл BallsCs5.cs, дополнив класс // User элементом списка и включив его в дочернее окно.Используя список, // можно изменить цвет шаров. // Изменения файла BallsCs5.cs выделены жирным шрифтом ... //------------------------------------- class Balls: Form // Класс объектов { Ball [] pBall; Color col; ... public void SetColor (Color Col) // Установить цвет { col= Col; Invalidate (); } ... } //------------------------------------- class User: Balls // Класс пользователя шаров { ... Color col; ListBox pListBox; public User () // Конструктор { ... pListBox= new ListBox (); pBut.MouseDown += new MouseEventHandler (OnBut); pListBox.Items.Add ("red"); pListBox.Items.Add ("green"); pListBox.Items.Add ("blue"); pListBox.Location = new Point (104, 24); pListBox.Name = "listBox"; pListBox.Size = new System.Drawing.Size (56, 17); pListBox.SelectedIndexChanged += new System.EventHandler (SelectedItem); pChildForm.Controls.Add (pListBox); } ... Void SelectedItem (object obj, EventArgs arg) { Console.WriteLine ("OkList"); If(pListBox.GetSelected (0)) col= Color.Red; If(pListBox.GetSelected (1)) col= Color.Green; If(pListBox.GetSelected (2)) col=Color.Blue; SetColor (col); } ... } /* Результат: Появились прикладное окно с перемещающимися шарами и дочернее окно с кнопкой и со списком. При нажатии на кнопку можно приостанавливать или возобновлять движение шаров. Используя список, можно изменить цвет шаров. */
Рис. 5.3.6.1. Прикладное и дочернее окна Balls–приложения 6 этапа
Пример 5.3.6.2. Реализация шестого этапа разработки Balls–приложения на языке Java.
package BallsCj6; //////////////////// //C# File BallsCj6 import java.util.*; import java.awt.*; import java.awt.event.*; //import java.awt.event.ActionListener;
class Obs { public int num, n;
public Obs (int num, int n)
{this.num= num; this.n= n;}
int getNumber(){return num;}
int getN(){return n;} } class Ball extends Observable implements Runnable // Класс обычного объекта { int num; Thread thread; boolean run; boolean waiting= false; boolean life; public int x, y; public int w, h; public int dx, dy;
public Ball (int Num, int X, int Y, int Dx, int Dy)// Конструктор { num= Num; life= false; run= false; w= 100; h= 100; x= X; y= Y; dx= Dx; dy= Dy; Start (); }
public void Start () // Стартовать { if (!run) { run= true; life= true; thread= new Thread (this); thread.start (); } } //--------------- synchronized public void Suspend () // Приостановить { if (run) { run= false; waiting=true; } } //--------------- synchronized public void Resume () // Возобновить { if (!run) { run= true; waiting=false; notify(); } } //--------------- public void run () // Выполнить поток { int n= 0; while (life) { System.out.print("object "+num); System.out.println(" n= "+n); n++; x += dx; y += dy; if (x>w || x<0) dx= -dx; if (y>h || y<0) dy= -dy;
// Уведомить setChanged(); notifyObservers(new Obs(num, n)); try { Thread.sleep (100); synchronized(this) { if(waiting) wait(); } } catch(InterruptedException iE){} } System.out.print("object "+num); System.out.println(" finished "); } }
//------------------------------------- class Balls extends Frame implements Observer // Класс объектов { Ball [] pBall; Color col; public Balls () { this.setTitle("Balls"); this.setSize(400, 300); col= Color.red; pBall= new Ball [2]; for (int i= 0; i < 2; i++) { pBall[i]=new Ball (i, i*3+10, 1*3+15, i*3+5, i*3+5); pBall[i].addObserver(this); } this.show(); Start (); } //--------------- public void SetColor (Color Col) // Установить цвет { col= Col; repaint(); }
//--------------- public void Start () // Стартовать { for(int i=0; i < 2; i++) { pBall[i]. Start (); } } //--------------- public void Suspend () // Возобновить { for (int i=0; i < 2; i++) pBall[i].Suspend (); } //--------------- public void Resume () // Приостановить { for (int i= 0; i < 2; i++) pBall[i].Resume (); }
public void update (Observable r, Object ob) // Обработчик события ev { Obs obs= (Obs) ob; System.out.print("object num= "+ obs.num); System.out.println(" n= "+ obs.n); repaint(); }
public void paint (Graphics g) { super.paint (g); g.setColor(col); for (int i= 0; i < 2; i++) { g.drawOval(pBall[i].x, pBall[i].y, 20, 20); pBall[i].w= this.getSize().width; pBall[i].h= this.getSize().height; } } }
class User extends Balls implements ActionListener, // Класс пользователя шаров ItemListener { private boolean run; Frame pChildForm; Button pBut; private Choice c; // Ссылка на объект-список public User () { run= true; pBut= new Button("OK"); pBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent aE) { System.out.println ("OkButton"); if (run) { run= false; Suspend (); } else if (!run)
{ run= true; Resume (); } } });
this.setSize(400, 300); //--------------- pChildForm= new Frame (); pChildForm.setLocation(250, 10); pChildForm.setSize(250, 250); pChildForm.setTitle("User"); pChildForm.show (); pChildForm.setLayout (new FlowLayout ());// Установить расстановку pChildForm.add(pBut);
c= new Choice (); // Создать объект списка c.addItem ("blue"); // Добавить элемент "blue" c.addItem ("green"); //Добавить элемент "green" c.addItem ("red"); //Добавить элемент "red" pBut.addActionListener (this); pChildForm.add(c, new Point (100,20)); //Подсоединить список к окну pChildForm.setVisible (true); // Показать кнопку и список в окне }
public void itemStateChanged (ItemEvent iE) { }
|
||||||
Последнее изменение этой страницы: 2016-08-01; просмотров: 144; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.72.173 (0.009 с.) |