|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2005
Città: pescara in abruzzo
Messaggi: 45
|
[JAVA] far apparire/scomparire immagini con i pulsanti
salve a tutti
mi sto cimentando con la grafica in java, però non ho capito come far apparire un immagine solo se viene premuto un JButton. questo è il codice che ho scritto, però non ho capito come devono interagire i metodi paintcomponent e actionperformed... Codice:
public class PanelCol2 extends JPanel implements ActionListener{ JButton b3; Image img1; public PanelCol2() throws MalformedURLException{ super(); b3 = new JButton("cane"); b3.addActionListener(this); add(b3); Toolkit tk = Toolkit.getDefaultToolkit(); //estraiamo il toolkit del pannello URL url = new URL("http://digital-photography-school.com/wp-content/uploads/2007/07/pet-photograph.jpg"); img1 = tk.getImage(url); //assegnamo il valore all'immagine a partire dal toolkit MediaTracker mt = new MediaTracker(this);//mt si occupa del caricamento delle immagini. il componente su cui avverrà il disegno è il pannello stesso(this) mt.addImage(img1, 1);//aggiungiamo l'immagine specificando un num identificativo try { mt.waitForAll(); //si dice a mt di aspettare il caricamento delle immagini } catch (InterruptedException e) {} } public void actionPerformed(ActionEvent e){ Object pulsantepremuto = e.getSource(); if(pulsantepremuto==b3{ //e ora?????? } public void paintComponent(Graphics g){ super.paintComponent(g); g.drawImage(img1, 200, 200, null); } ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 309
|
premetto che è un po' che non uso java e non ricordo il nome corretto delle funzioni del paint, comunque si dovrebbe fare così:
con il bottone tu imposti un boolean (privata della classe principale) che ti dice se devi fare vedere l'immagine o no: se vuoi che cliccando una volta compaia e successivi click siano superflui, nell' actionPerformed fai Codice:
variable=true; Codice:
variable=!variable Codice:
public void paintComponent(Graphics g){ super.paintComponent(g); if(variable==true) g.drawImage(img1, 200, 200, null); } Codice:
repaint(); in questo modo dovrebbe funzionare, in ogni caso più o meno rende l'idea di come si deve fare |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:03.