Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    [Java] Swing e visualizzazione di immagini

    Ciao a tutti,

    Esistono numerosi post, però non sono riuscito a trovare ciò che cercavo.
    Ho già letto un tutorial della Sun ( http://download-llnw.oracle.com/java...ges/index.html ), tuttavia ho alcune difficoltà.

    Ho creato una classe che estende JPanel la quale implementa anche paintComponent() ed il metodo drawImage(), così da mostrare l'immagine.
    La mia intenzione tuttavia è quella di poter ricevere eventi al click su un certo punto dell'immagine, così da poterla colorare.. qui nasce il problema. Non so su quale componente ascoltare..

    Ecco il codice:

    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.image.*;
    import javax.imageio.*;
    import java.awt.event.*;
    
    import java.io.*;
    
    class TestImagePanel extends JPanel {
      private BufferedImage img=null;
      
      TestImagePanel() {
        try {
    	  img = ImageIO.read(new File("strawberry.jpg"));
    	} catch(Exception e) {}
      }
      
      void setRGBColor(int x,int y, int color) {
      	img.setRGB(x,y,color);
      }
      
      public void paintComponent(Graphics g) {
        g.drawImage(img,img.getWidth(null),img.getHeight(null),null);
      }
    }
    
    class TestImage extends JFrame {
      private TestImagePanel t;
      TestImage() {
        t = new TestImagePanel();
    	add(t);
    	
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	
    	// Era un test per testarne il funzionamento..
    	//t.setRGBColor(10,10,0);
      }
      
      public static void makeGUI() {
        TestImage ti = new TestImage();
    	ti.setSize(200,200);
    	ti.setVisible(true);
      }
      
      public static void main(String args[]) {
        try {
    	  SwingUtilities.invokeAndWait(new Runnable() {
    	    public void run() {
    		  makeGUI();
    		}
    	  });
    	} catch(Exception e) {}
      }
    }


    Grazie!! ^^

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Swing e visualizzazione di immagini

    Originariamente inviato da Patrick Jane
    La mia intenzione tuttavia è quella di poter ricevere eventi al click su un certo punto dell'immagine, così da poterla colorare.. qui nasce il problema. Non so su quale componente ascoltare..
    Sul tuo pannello ... non c'è altra possibilità. Se tu disegni figure e vuoi che il mouse possa "interagire" in qualche modo con queste figure, è tutto a tuo carico. Se tu che devi tenerti le informazioni di dove sono le figure e poi dato un punto del mouse (al movimento o al click) devi andare a verificare in quale figura "cade" il punto.


    P.S.1) paintComponent tienilo protected.
    P.S.2) di quel drawImage che hai usato il secondo/terzo parametro sono x e y .... perché ci passi larghezza/altezza immagine?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    Re: Re: [Java] Swing e visualizzazione di immagini

    Originariamente inviato da andbin
    Sul tuo pannello ... non c'è altra possibilità. Se tu disegni figure e vuoi che il mouse possa "interagire" in qualche modo con queste figure, è tutto a tuo carico. Se tu che devi tenerti le informazioni di dove sono le figure e poi dato un punto del mouse (al movimento o al click) devi andare a verificare in quale figura "cade" il punto.
    Ok va bene!
    Ma consigli di disegnarle con un drawImage, oppure metterle in un JLabel?

    codice:
    P.S.1) paintComponent tienilo protected.
    P.S.2) di quel drawImage che hai usato il secondo/terzo parametro sono x e y .... perché ci passi larghezza/altezza immagine?
    1) Ok, grazie
    2) Perchè ero stanco :P xD

    Grazie!! ^^

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: [Java] Swing e visualizzazione di immagini

    Originariamente inviato da Patrick Jane
    Ma consigli di disegnarle con un drawImage, oppure metterle in un JLabel?
    Se vuoi disegnare qualcosa di particolare, che sia prefissato da codice oppure alterabile dall'utente, meglio farlo in un proprio "componente", non JLabel.

    JLabel dovrebbe servire solo per mostrare testo e/o Icon. Certo ... anche di un Icon puoi fornire una tua implementazione specifica che disegna qualcosa di particolare ma un Icon generalmente lo si usa per qualcosa di abbastanza "fisso" e di cui tra l'altro non puoi "sapere" null'altro di particolare (es. non sai a priori dove esattamente, a che pixel, un JLabel andrà a disegnare un Icon!).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    Re: Re: Re: Re: [Java] Swing e visualizzazione di immagini

    Originariamente inviato da andbin
    Se vuoi disegnare qualcosa di particolare, che sia prefissato da codice oppure alterabile dall'utente, meglio farlo in un proprio "componente", non JLabel.
    Si, hai centrato il problema!
    Io devo lasciar la possibilità di apportare delle modifiche a questa immagine, e devo sapere la posizione esatta in cui effettuare questa modifica!

    Quindi quel codice va bene?

    Grazie! ^^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.