|
|||||||
|
|
|
![]() |
|
|
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: 00:42.



















