Obměňování obrázků v JLabel – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Obměňování obrázků v JLabel – Java – Fórum – Programujte.comObměňování obrázků v JLabel – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
ViliX64+1
Návštěvník
13. 8. 2013   #1
-
0
-

Zdravím, chtěl bych poradit s metodou, která by mi měnila obrázky v JLabel. Nemám problém zobrazení jednoho obrázku, ale jakmile tento postu použiji na stejný JLabel znovu, tak se obrázek nenahradí, ale zobrazí se pod ním.

Nahlásit jako SPAM
IP: 88.103.99.–
KIIV
~ Moderátor
+43
God of flame
13. 8. 2013   #2
-
0
-

jaky postup?

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ViliX64+1
Návštěvník
13. 8. 2013   #3
-
0
-

Abych třeba zavolal metodu, která by příjímala cestu k souboru jako String a tím nahradila původní obrázek. Předpokládám použití BufferedImage.

Nahlásit jako SPAM
IP: 88.103.99.–
KIIV
~ Moderátor
+43
God of flame
13. 8. 2013   #4
-
0
-

No ja se ptal co pouzivas ted za kod, ze ti to vykresluje pod sebou, abych divoce nehadal, ze pokazde vytvoris novy objekt, ktery se pak zobrazi az za vsechny existujici? Tezko rict

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ViliX64+1
Návštěvník
13. 8. 2013   #5
-
0
-

   

BufferedImage obr;
JLabel plocha;

void nastavObrazek(String cesta) {
	obr = ImageIO.read(this.getClass().getResource(cesta));
	plocha = new JLabel(new ImageIcon(obr));
}

Předpokládám, že asi vytvářím nový objekt, každopádně nevím, jak ho měnit..

Nahlásit jako SPAM
IP: 88.103.99.–
KIIV
~ Moderátor
+43
God of flame
13. 8. 2013   #6
-
0
-

co treba plocha.setIcon(...); ?

samozrejme s necim jako

if (plocha == null) { plocha = new JLabel(....); } else { plocha.setIcon(...); }

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ViliX64+1
Návštěvník
13. 8. 2013   #7
-
0
-

Použít k vyčištění předchozího obrázku?

Nahlásit jako SPAM
IP: 88.103.99.–
zlz
~ Anonymní uživatel
634 příspěvků
14. 8. 2013   #8
-
0
-

Předpokládám, že asi vytvářím nový objekt

To předpokládáš správně.

každopádně nevím, jak ho měnit

Vytvoř ho jen jednou a pak jen měň ten obrázek. Viz #6.

Použít k vyčištění předchozího obrázku?

K jeho nahrazení novým. To přece chceš, nebo ne?

Nahlásit jako SPAM
IP: 78.156.159.–
ViliX64+1
Návštěvník
14. 8. 2013   #9
-
0
-

Ano, ale jak toho docílit? Když použiju plocha.setIcon(null), tak mi to eclipse nebere.

Nahlásit jako SPAM
IP: 88.103.99.–
Řešení
zlz
~ Anonymní uživatel
634 příspěvků
14. 8. 2013   #10
-
0
-
Vyřešeno Nejlepší odpověď

null to normálně bere, ale nechápu proč bys ho tam cpal

if (plocha == null) {
    plocha = new JLabel(new ImageIcon(obr)); // on by teda ten label asi uz mel davno existovat a byt nekde umisteny, ale budiz...
} else {
    plocha.setIcon(new ImageIcon(obr));
}
Nahlásit jako SPAM
IP: 80.188.216.–
ViliX64+1
Návštěvník
14. 8. 2013   #11
-
0
-

No, chyba byla nakonec ve čtení obrázku, každopádně, tady je celá metoda: 

void zmenObrazek(String soubor) {
		final int SIRKA_OBRAZKU = 495;
		try {
			String cesta = "/cz/graphic/" + soubor;
			Icon image = new ImageIcon(ImageIO.read( WindowsObjects.class.getResourceAsStream(cesta)));
			label.setIcon(image);
			label.setBounds(795, (700 - image.getIconHeight()) / 2, SIRKA_OBRAZKU, image.getIconHeight());
		} catch (IOException chyba) {
		//	chyba.printStackTrace();
		}
	}

A všem děkuji za pomoc

Nahlásit jako SPAM
IP: 88.101.227.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

JLabel tabulator — založil frno.frno

Jak zarovnat obsah JLabel — založil ViliX64

Pozice obrazku — založil Daniel

Více obrázků — založil Michal

Generování obrázků — založil Marek Štafl

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý