jock (Normal User)
Pro
Messaggi: 71
Iscritto: 15/01/2010
|
Buonasera a tutti, sapete dirmi se fosse possibile cliccando su una label aprire fileChooser per selezionare i file.
Ringrazio anticipatemente
|
|
Bonny (Member)
Expert
Messaggi: 437
Iscritto: 24/04/2009
|
Devi associare ad essa l'ascoltatore, per i JButton si usa ActionListener ma per la JLabel non vedo il metodo addActionListener quindi bisogna usare l'interfaccia MouseListener o estendere MouseAdapter. MouseListener ti obbliga a inserire anche i metodi MousePressed ecc.. per ovviare a questo fatto basta estendere MouseAdapter e fare l'overwrite del metodo che ti serve ed associare un oggetto di questo tipo alla JLabel
Codice sorgente - presumibilmente Java |
label.addMouseListener(new ClickToJLabel()); @Override //apri choose file } }
|
|
|
jock (Normal User)
Pro
Messaggi: 71
Iscritto: 15/01/2010
|
Grazie mille Bonny...
P.s.
Sai per caso se è possibile mettere un immagine di sfondo ad un pannello o frame senza che gli componenti siano coperti...
|
|
Bonny (Member)
Expert
Messaggi: 437
Iscritto: 24/04/2009
|
credo che si debba usare il metodo void pain(Graphics) perchè component come JPanel non hanno il metodo setIcon()
es:
Codice sorgente - presumibilmente Java |
class MyJPanel extends JPanel{ g.draw(img.getImage(), 0, 0, this.getWidth(), this.getHeight(), this); /* disegna l'immagine a partire dalle coordinate (0,0) e la adatta alle dimensione del pannello */ } }
|
Ultima modifica effettuata da Bonny il 20/02/2012 alle 14:19 |
|
jock (Normal User)
Pro
Messaggi: 71
Iscritto: 15/01/2010
|
Non funziona, lo modificato cosi ma neanche...
Codice sorgente - presumibilmente Java |
g.drawImage(img.getImage(), 0, 0, this.getWidth(), this.getHeight(), this); }
|
|
|
Bonny (Member)
Expert
Messaggi: 437
Iscritto: 24/04/2009
|
Questo funziona:
Codice sorgente - presumibilmente Java |
import java.awt.Graphics; import javax.swing.ImageIcon; import javax.swing.*; public class Main { Main() { Prova p = new Prova(); p.add(btn); f.getContentPane().add(p); f.setSize(600, 600); f.setLocation(0, 0); f.setVisible(true); } public static void main (String args []) { new Main(); } @Override g.drawImage(img.getImage(), 0, 0, this.getWidth(), this.getHeight(), this); } } }
|
Ultima modifica effettuata da Bonny il 20/02/2012 alle 14:52 |
|
jock (Normal User)
Pro
Messaggi: 71
Iscritto: 15/01/2010
|
Lo provato ma se allargo la finestra, il bottone scompare...
|
|
Bonny (Member)
Expert
Messaggi: 437
Iscritto: 24/04/2009
|
Metti paintComponent(Graphics g) cosi funziona
Codice sorgente - presumibilmente Java |
package jpuzzle; import java.awt.Graphics; import javax.swing.ImageIcon; import javax.swing.*; /** * * @author bonny */ public class Main { Main() { Prova p = new Prova(); p.add(btn); f.getContentPane().add(p); f.setSize(600, 600); f.setLocation(0, 0); f.setVisible(true); } public static void main (String args []) { new Main(); } @Override public void paintComponent (Graphics g ) { super.paintComponent(g); g.drawImage(img.getImage(), 0, 0, this.getWidth(), this.getHeight(), this); } } }
|
Ultima modifica effettuata da Bonny il 20/02/2012 alle 15:24 |
|
jock (Normal User)
Pro
Messaggi: 71
Iscritto: 15/01/2010
|
Ti invio il miei file, il problema e lo sfondo bianco del Panel...
|
|