![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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, // Класс пользователя шаров
|