Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2012, 21:51   #1
ИльназВ
 
Регистрация: 18.03.2012
Сообщений: 9
По умолчанию Перевод с C# на Java

никак не получается поменять события на уведомления, не могу понять в чем ошибка
Код:

import System.Collections.Generic.*;
import System.Windows.Forms.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Button;
import java.util.Observer;

public class Ball extends Observable implements Runnable, Observer
{
	private int x, y;
	private int dx, dy;
	private int w, h;
	private boolean life;
	private boolean waiting;
	private Thread thr;
	private boolean t;
	//private Random r;

	public int getX() { return x; }

	public int getY() { return y; }

	public Ball(int X, int Y, int Dx, int Dy, int W, int H)
	{
		x = X; y = Y; dx = Dx; dy = Dy; w = W; h = H;
		life = true; waiting = false; t = true;
		thr = new Thread(this);
		thr.start();
	}

	public void suspendBall() { waiting = true; }
	synchronized public void resumeBall()
	{
		waiting = false;
		this.notify();
	}
	public void FinishBall() { life = false; }

	
	public void run()
	{
		while (life)
		{
			x += dx; y += dy;
			if (x > w - 30 || x < 0)
			{
				dx = -dx;


			}
			if (y > h - 30 || y < 0)
			{
				dy = -dy;

			}
			synchronized (this)
			{
				if (waiting)
					try
					{
						this.wait();
					}
					catch (InterruptedException e) { }
			}
			setChanged();
			notifyObservers(new Boolean(false));
			
			{
				setChanged();
				notifyObservers(new Boolean(true));
				
			}
			

			try
			{
				Thread.sleep(50);
			}
			catch (InterruptedException e) { }
		}
	}


	public void update(Observable ob, Object oj)
	{
		
		boolean a = ((Boolean)oj).booleanValue();
		if (a)
		{
			if ((Math.abs(((x + 30) / 2) - ((getX() + 30) / 2)) <= 15) && ((Math.abs(((y + 30) / 2) - ((getY() + 30) / 2)) <= 15)))
			{
				dx = -dx; dy = -dy;

			}
		}
	}
}

public class Balls extends Frame implements Observer
{
	ArrayList aL;
	private Button butAdd;
	private Button butR;
	private Random r;
	Object obj;
	public Ball bl;
	public Balls()
	{

		aL = new ArrayList();
		r = new Random();
		setSize(300, 200);
		setVisible(true);
		setLayout(null);

		butAdd = new Button("Add");
		butAdd.setLocation(17, 34);
		butAdd.setSize(70, 40);
		add(butAdd);
		obj = this;
		this.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent wE)
			{
				for (int i = 0; i < aL.size(); i++)
				{
					Ball b = (Ball)aL.get(i);
					b.FinishBall();
				}
				System.exit(0);
			}
		});


		butAdd.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent aE)
			{
				
				Ball a;
				Ball b = new Ball(r.nextInt(50) + 10, r.nextInt(50) + 10, r.nextInt(10) + 5, r.nextInt(10) + 5, 300, 200);
				b.addObserver((Balls)obj);
				
				aL.add(b);

				a = b;

				for (int i = 0; i < aL.size() - 1; i++)
				{
					b = (Ball)aL.get(i);
					b.addObserver(a);
					a.addObserver(b);
					
				}

			}


		});
		
	}


	public void paint(Graphics g)
	{
		for (int i = 0; i < aL.size(); i++)
		{
			Ball ball = (Ball)aL.get(i);
			g.setColor(Color.BLUE);
			g.drawOval(ball.getX(), ball.getY(), 30, 30);

		}

	}


	public void update(Observable obs, Object obj)
	{

		repaint();
	}

	public static void main()
	{
		Balls balls = new Balls();

	}
}
ИльназВ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод программы на java Inka94 Помощь студентам 0 08.05.2012 00:54
Перевод из С# на Java STERVA Помощь студентам 0 22.12.2011 18:28
Перевод с С# na php/java script PGS Фриланс 0 02.06.2011 02:20
Перевод на Java Ksuxa Общие вопросы по Java, Java SE, Kotlin 2 06.09.2010 01:01
перевод с Java на C Lys Помощь студентам 2 10.12.2009 01:50