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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 20:08   #1
Sasha9132
 
Аватар для Sasha9132
 
Регистрация: 16.11.2010
Сообщений: 7
По умолчанию Посоветуйте с перерисовкой

Привет всем! Помогите решить проблемку.
Есть объект расширяющий JFrame на этот объект в JLabel добавлено изображение, при запуске это изображение нормально отрисовывается, после чего нужно на этом месте нарисовать другое изображение либо в этом JLabel либо создать новый и нарисовать.
Как быть?

P.S. если есть возможность то дайте код
Лишь тот достоин жизни и свободы, кто каждый день за них идет на бой... И. В. Гете
Sasha9132 вне форума Ответить с цитированием
Старый 25.11.2010, 23:04   #2
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Взял с книги вроде это
Код:
import java.util.*;
import java.applet.*;
import java.awt.*;

	public class  TrackedImageLoad extends Applet implements Runnable {
	MediaTracker tracker;	
	int tracked;
	int frame_rate = 5;
	int current_img = 0;
	Thread motor;
	static final int MAXIMAGES = 10;
	Image img[] = new Image[MAXIMAGES];
	String name[] = new String[MAXIMAGES];
	boolean stopflag;
	
	public void init() {
	tracker = new MediaTracker(this);
	StringTokenizer st = new StringTokenizer(getParameter("img"),"+");
	while(st.hasMoreTokens()&& tracked<= MAXIMAGES) {
	name[tracked] = st.nextToken();
	img[tracked] = getImage(getDocumentBase(),name[tracked]+".jpg");
	
	tracker.addImage(img[tracked],tracked);
	tracked++;
	}
	  }
	/////////////////////////////
	public void paint(Graphics g){
		String loaded = "";
		int donecount = 0;
		 for (int i = 0; i<tracked; i++) {
			 if (tracker.checkID(i,true)) {
				 donecount++;
				 loaded += name[i]+ " ";
				 
			 }
		 }
		//////////////////////////
		Dimension d = getSize();
		int w = d.width;
		int h = d.height;
		 if (donecount == tracked) {
			 frame_rate = 1;
			 Image i = img[current_img++];
			 int iw = i.getWidth(null);
			 int ih = i.getHeight(null);
			  g.drawImage(i,(w-iw)/2,(h - ih)/2, null);
			  if (current_img >= tracked) current_img = 0;
		 } else {
			 int x = w * donecount / tracked;
			 g.setColor(Color.black);
			 g.fillRect(0, h/3, x, 16);
			 g.setColor(Color.white);
			 g.fillRect(x, h / 3, w - x, 16);
			 g.setColor(Color.black);
			 g.drawString(loaded, 10, h / 2);
		 }
		}
	/////////////////
	public void start() {
		motor = new Thread(this);
		stopflag = false;
		motor.start();
	  }
	////////////////////
	public void stop() {
		stopflag = true;
	 }
	////////////////
	public void run() {
		motor.setPriority(Thread.MIN_PRIORITY);
		 while(true) {
			 repaint();
		 }
		try {
		Thread.sleep(1000/frame_rate);
		} catch (InterruptedException e) {
			System.out.println("Interrrupted");
			 return;
		}
		if (stopflag)
			return;
	  }
	}
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 26.11.2010, 03:10   #3
Sasha9132
 
Аватар для Sasha9132
 
Регистрация: 16.11.2010
Сообщений: 7
По умолчанию

спс за код, но мне нужно обновление объекта JLabel непосредственно в оконном приложении
Лишь тот достоин жизни и свободы, кто каждый день за них идет на бой... И. В. Гете
Sasha9132 вне форума Ответить с цитированием
Старый 26.11.2010, 16:54   #4
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

это вы уже сами
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте литературу для начинающего. И вообще что-нибудь толковое посоветуйте ))) Гаур-Мяур SQL, базы данных 5 24.12.2009 00:37
Посоветуйте антивирус. Вадим Буренков Свободное общение 18 24.09.2009 23:38
Посоветуйте Wh1te Помощь студентам 4 01.06.2009 05:14
Посоветуйте Speeker Общие вопросы Delphi 6 18.02.2007 17:17