Settare un immagine in un JLabel

di il
2 risposte

Settare un immagine in un JLabel

Salve ragazzi ho un problema ho un JLabel e al suo interno ho immagine c'è una procedura oppure una sequenza di operazioni che mi permette di cambiare l'immagine all'interno del panel? ho già provato repaint() vi linko il codice che ho creato, mi va bene anche sostituire la JLabel con la JPanel


public void run() {
			try {
				for (int i = 1; i <= 10; i++) {
					Thread.sleep(100);   // 100 ms
					SwingUtilities.invokeLater(new Runnable() {
						public void run() {
							lblNewLabel.removeAll();
							lblNewLabel.validate();
							lblNewLabel.setIcon(new ImageIcon("C:\\Users\\broke\\Desktop\\backupworkspace\\IUM\\src\\immagini\\vulcano.png"));
							try {
								Thread.sleep(100);
							} catch (InterruptedException e) {
								e.printStackTrace();
							}
							lblNewLabel.removeAll();
							lblNewLabel.validate();
							lblNewLabel.setIcon(new ImageIcon("C:\\Users\\broke\\Desktop\\backupworkspace\\IUM\\src\\immagini\\menu_tendina.jpg"));
						}


					});
				}
			} catch (InterruptedException e) {
				System.err.println(e);
			}

			}

2 Risposte

  • Re: Settare un immagine in un JLabel

    broke31 ha scritto:


    salve ragazzi ho un problema ho un JLabel e al suo interno ho immagine c'è una procedura oppure una sequenza di operazioni che mi permette di cambiare l'immagine all'interno del panel? ho già provato repaint() vi linko il codice che ho creato, mi va bene anche sostituire la JLabel con la JPanel
    Due cose:
    - primo, innanzitutto lblNewLabel è il JLabel, giusto? Bene, allora non servono removeAll() e validate() !

    - secondo, il run() interno, quello del invokeLater (non quello del thread), è ovviamente eseguito nel contesto del EDT. E se ci metti dentro un sleep, di nuovo lo stai tenendo "impegnato" tu. Quindi, tra l'altro, l'immagine "vulcano.png" non la vedi.
  • Re: Settare un immagine in un JLabel

    Grazie mille ho finalmente capito dove stavo sbagliando!
Devi accedere o registrarti per scrivere nel forum
2 risposte