JLabel icon sie nie odswieza

0

Czesc! Mam tak listenera zrobionego (wiem, mieszanie nazw PL z ENG smiesznie wyglada, moze jak przy koncu projektu pozmieniam nazwy :) )

rozdajButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				EventQueue.invokeLater(new RozdajKartyThread(kartyGracza));
				
			}
		});

A tu metode run() z RozdajKartyThread :

public void run() {
			Iterator<Karta> it = talia.getTalia().iterator();
			int szerokosc = 80;
			for(int i = 0; i < karty.length; i++) {
				karty[i] = it.next();
				add(karty[i]);
				karty[i].setSize(72, 96);
				karty[i].setLocation(szerokosc, 310);
				szerokosc += 80;
				it.remove();
				ileKartZostalo.setText(Integer.toString(talia.getTalia().size()));
				
			}

Ta metoda run ma w zamiarze rozdać karty i pierwsze jej wywołanie robi to dobrze, drugie również odejmuje z kupki karty(mam specjalny licznik kart na kupce) ale obrazki się juz nie chcą zmienić.

Dodam że klasa karta rozszerza JLabel, szukałem trochę po forach rozwiązań ale póki co bez efektu
próbowałem repainta robić, validate, doLayout, teraz zrobiłem to w wątku i wciąż nie chce się odświeżyć.

0

Cześć.
Rozumiem, że layout manager jest na null. W takim przypadku (wg tutków sunowskich) należy używać metody setBounds. Tam jako argumenty podaje się pozycje i rozmiar (takie setSize i setLocation w jednym). Sprawdź czy pomoże.
Dodatkowo na końcu tego runa, zrób na kontenerze w którym rysujesz revalidate() (jak nie pomoże to rób invalidate(), validate,revalidate() - będzie musiało zadziałać)
Jeżeli nadal nie, to pozostaje już tylko wywołanie dla kontenera paintComponents().

Napisz jak Ci poszło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1