Immagine in JPanel

di il
4 risposte

Immagine in JPanel

Save a tutti ragazzi, ho un problema con l'inserimento di un'immagine in un jpanel attraverso un ActionListener.

Praticamente attraverso l'actionlistener (pressione di un JButton) vorrei far comparire un'immagine.

Ho fatto un abbozzo ma non mi esce nulla...

Ecco il codice
import javax.swing.JFrame;


public class ProvaRicetta extends JFrame {

  public static void main(String[] args) {
    TabIniziale tab = new TabIniziale();
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(tab);
    frame.pack();
    frame.setVisible(true);
  }
}


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;






public class TabIniziale extends ImagePanel {
    
    private JButton irlanda,regnounito,islanda,portogallo,spagna,francia,svizzera,belgio,germania,olanda,danimarca,norvegia = new JButton();
    private JButton svezia,finlandia,estonia,lettonia,bielorussia,lituania,ceca,austria,italia,slovenia,croazia,bosnia,serbia,montenegro = new JButton();
    private JButton albania,grecia,macedonia,bulgaria,romania,ucraina,slovacchia,moldavia,ungheria,andorra,russia,polonia = new JButton();
    private JButton array[];
    AzioneNaz aznaz = new AzioneNaz();
    
    
    public TabIniziale() {
        
        
        super(new ImageIcon("C:\\Users\\Daniele\\Desktop\\prove\\ProvaRicetta\\src\\immagini\\europa.png").getImage());
        ImagePanel panel = new ImagePanel(new ImageIcon("C:\\Users\\Daniele\\Desktop\\prove\\ProvaRicetta\\src\\immagini\\europa.png").getImage());
        JPanel jp = new JPanel();
        jp.add(panel);
        
        
                
        irlanda = new JButton();
        irlanda.setToolTipText("irlanda");
        irlanda.setBounds(168,279,15,15);

        islanda = new JButton();
        islanda.setToolTipText("islanda");
        islanda.setBounds(138,38,15,15);

        regnounito = new JButton();
        regnounito.setToolTipText("regnounito");
        regnounito.setBounds(222,336,15,15);

        portogallo = new JButton();
        portogallo.setToolTipText("portogallo");
        portogallo.setBounds(40,517,15,15);

        spagna = new JButton();
        spagna.setToolTipText("spagna");
        spagna.setBounds(118,518,15,15);

        francia = new JButton();
        francia.setToolTipText("francia");
        francia.setBounds(234,388,15,15);

        svizzera = new JButton();
        svizzera.setToolTipText("svizzera");
        svizzera.setBounds(296,434,15,15);

        belgio = new JButton();
        belgio.setToolTipText("belgio");
        belgio.setBounds(267,358,15,15);

        germania = new JButton();
        germania.setToolTipText("germania");
        germania.setBounds(373,345,15,15);

        olanda = new JButton();
        olanda.setToolTipText("olanda");
        olanda.setBounds(280,333,15,15);

        danimarca = new JButton();
        danimarca.setToolTipText("danimarca");
        danimarca.setBounds(368,285,15,15);

        norvegia = new JButton();
        norvegia.setToolTipText("norvegia");
        norvegia.setBounds(362,203,15,15);

        svezia = new JButton();
        svezia.setToolTipText("svezia");
        svezia.setBounds(430,223,15,15);

        finlandia = new JButton();
        finlandia.setToolTipText("finlandia");
        finlandia.setBounds(500,200,15,15);

        estonia = new JButton();
        estonia.setToolTipText("estonia");
        estonia.setBounds(488,220,15,15);

        lettonia = new JButton();
        lettonia.setToolTipText("lettonia");
        lettonia.setBounds(488,265,15,15);

        danimarca = new JButton();
        danimarca.setToolTipText("danimarca");
        danimarca.setBounds(368,285,15,15);

        bielorussia = new JButton();
        bielorussia.setToolTipText("bielorussia");
        bielorussia.setBounds(536,315,15,15);

        lituania = new JButton();
        lituania.setToolTipText("lituania");
        lituania.setBounds(500,308,15,15);

        ceca = new JButton();
        ceca.setToolTipText("ceca");
        ceca.setBounds(380,419,15,15);

        austria = new JButton();
        austria.setToolTipText("austria");
        austria.setBounds(403,424,15,15);

        italia = new JButton();
        italia.setToolTipText("italia");
        italia.setBounds(345,534,15,15);

        slovenia = new JButton();
        slovenia.setToolTipText("slovenia");
        slovenia.setBounds(385,458,15,15);

        croazia = new JButton();
        croazia.setToolTipText("croazia");
        croazia.setBounds(395,470,15,15);

        bosnia = new JButton();
        bosnia.setToolTipText("bosnia");
        bosnia.setBounds(420,510,15,15);

        serbia = new JButton();
        serbia.setToolTipText("serbia");
        serbia.setBounds(453,489,15,15);

        montenegro = new JButton();
        montenegro.setToolTipText("montenegro");
        montenegro.setBounds(435,528,15,15);

        albania = new JButton();
        albania.setToolTipText("albania");
        albania.setBounds(442,560,15,15);

        grecia = new JButton();
        grecia.setToolTipText("grecia");
        grecia.setBounds(500,610,15,15);

        macedonia = new JButton();
        macedonia.setToolTipText("macedonia");
        macedonia.setBounds(467,543,15,15);

        bulgaria = new JButton();
        bulgaria.setToolTipText("bulgaria");
        bulgaria.setBounds(490,526,15,15);

        romania = new JButton();
        romania.setToolTipText("romania");
        romania.setBounds(522,489,15,15);

        ucraina = new JButton();
        ucraina.setToolTipText("ucraina");
        ucraina.setBounds(568,374,15,15);

        slovacchia = new JButton();
        slovacchia.setToolTipText("slovacchia");
        slovacchia.setBounds(421,425,15,15);

        andorra = new JButton();
        andorra.setToolTipText("andorra");
        andorra.setBounds(200,500,15,15);

        moldavia = new JButton();
        moldavia.setToolTipText("moldavia");
        moldavia.setBounds(554,443,15,15);

        ungheria = new JButton();
        ungheria.setToolTipText("ungheria");
        ungheria.setBounds(434,441,15,15);

        russia = new JButton();
        russia.setToolTipText("russia");
        russia.setBounds(630,265,15,15);

        polonia = new JButton();
        polonia.setToolTipText("polonia");
        polonia.setBounds(460,350,15,15);
        
        array = new JButton[] {irlanda,regnounito,islanda,portogallo,spagna,francia,svizzera,belgio,germania,olanda,danimarca,norvegia,svezia,finlandia,estonia,lettonia,bielorussia,lituania,ceca,austria,italia,slovenia,croazia,bosnia,serbia,montenegro,albania,grecia,macedonia,bulgaria,romania,ucraina,slovacchia,moldavia,ungheria,andorra,russia,polonia};
        
        
                
        for(int i=0;i<array.length;i++)
        {
            array[i].setOpaque(false);
            array[i].setContentAreaFilled(false);
            array[i].setBorderPainted(false);
            add(array[i]);
            array[i].addActionListener(new ActionListener()
    {
    @Override
    public void actionPerformed(ActionEvent ae) {
        try{
        aznaz.add(new AzioneNaz());
        }catch(Exception e) {
            System.out.println("Error : "+e);
        }
        }
    });
        }
        
    }
    
}

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;


public class AzioneNaz extends ImagePanel {
    
    private JButton inserisci,lista;
    
    public AzioneNaz()
    {
        super(new ImageIcon("C:\\Users\\Daniele\\Desktop\\prove\\ProvaRicetta\\src\\immagini\\chef.png").getImage());
        ImagePanel panel = new ImagePanel(new ImageIcon("C:\\Users\\Daniele\\Desktop\\prove\\ProvaRicetta\\src\\immagini\\chef.png").getImage());
        JPanel jp = new JPanel();
        jp.add(panel);
        
        inserisci = new JButton("INSERISCI RICETTA");
        inserisci.setToolTipText("inserisci");
        inserisci.setBounds(100,320,140,70);
        add(inserisci);
        
        lista = new JButton("LISTA RICETTE");
        lista.setToolTipText("inserisci");
        lista.setBounds(300,320,140,70);
        add(lista);
                
    }
    
}

grazie in anticipo

4 Risposte

  • Re: Immagine in JPanel

    Javier ha scritto:


    Praticamente attraverso l'actionlistener (pressione di un JButton) vorrei far comparire un'immagine.

    Ho fatto un abbozzo ma non mi esce nulla...
    Il design mi pare abbastanza contorto ..... TabIniziale contiene un campo AzioneNaz ... AzioneNaz è un "pannello" (ImagePanel), dove è inserito questo pannello aznaz? Intendo proprio in senso strutturale e di layout!
    L'unico uso di aznaz è nel actionPerformed, e su aznaz fai un add di un altro nuovo AzioneNaz.

    Mi spiace ma, onestamente, credo che così non vai molto lontano .....
  • Re: Immagine in JPanel

    Senza contare il fatto che nel main estendi JFrame e dichiari un'altro JFrame nel main method.
    Mi sa che hai le idee poco chiare.
  • Re: Immagine in JPanel

    Mi sa che hai le idee poco chiare.
    Non hai tutti i torti.

    La mia idea è quella di avere come immagine principale una mappa europea e poi cliccando su un bottone, ppartenente ad una capitale europea, mi apre un pannello di scelta...

    Ora come posso abbinare queste varie immagini?

    Di base devo avere un JFrame e sostituire volta per volta l'immagine che voglio far rappresentare?
  • Re: Immagine in JPanel

    Up
Devi accedere o registrarti per scrivere nel forum
4 risposte