Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    37

    Immagini in un Pannello JPanel in JAR

    Ciao ragazzi, dopo aver risolto vari problemi mi ritrovo a quello finale.

    Praticamente il mio programma crea un pannello all'interno del quale vengono caricati dei bottoni contenenti delle immagini (ImageIcon())
    Tutto funziona a meraviglia, ma quando faccio un pacchetto JAR e avvio il pannello le immagini non vengono caricate, al contrario di quanto accade durante l'esecuzione da BluJ

    codice:
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    
    class CaricaImmagini extends JFrame  {
    
    // Creazione Bottoni        
            JButton b1, b2 ;
            
    // Caricamento immagini per bottone      
    ImageIcon img = new ImageIcon("icc.jpg"); 
    ImageIcon ver = new ImageIcon("icc2.jpg");
    
    public CaricaImmagini(){
        creaico();
        add(new Pannello());
        setVisible(true);
        
    }
    
    
    public void creaico(){
        //Inizializzazione, creazione icone.
          b1 = new JButton(img); 
          b1.setBounds(50,20,60,50);
          b1.setBackground(new Color(0,0,0,0));      
          b1.addActionListener(new Sposta());        
          add(b1);
    } 
    
    
    class Pannello extends JPanel{
    
        public void paint(Graphics g){ 
            // Sfondo
            g.drawImage(new ImageIcon("ros.jpg").getImage(), 0, 0, null);
            g.drawImage(new ImageIcon("ver.jpg").getImage(), 0, 100, null); 
        }
    
    }
    
    public static void main(String[] args){
    
        try{
            SwingUtilities.invokeLater(new Runnable(){
                public void run(){ new CaricaImmagini(); }
            });
        }catch(Exception e){ }
    }
    }
    Il mio problema è come fare comparire le immagini (sia quelle delle ImageIcon, sia quelle del metodo paint) anche dopo aver fatto un pacchetto JAR.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Per usare immagini incorporate in un JAR si deve usare getResource() dell'oggetto Class per caricarle... esempi se ne trovano tanti anche in questo forum:

    http://forum.html.it/forum/showthrea...readid=1408051
    http://forum.html.it/forum/showthrea...readid=1413853
    http://forum.html.it/forum/showthrea...readid=1475413
    http://forum.html.it/forum/showthrea...readid=1485380

    PS: Il codice va postato all'interno dei tag CODE e non dei tag QUOTE, che servono a fare citazioni... (ho corretto io)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    37
    Grazie mille risolto, ho un altro problema che riguarda la classe RobotExp

    codice:
    import java.awt.AWTException;
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.awt.Dimension;
    import java.awt.*;
    
    import javax.imageio.ImageIO;
    
    public class RobotExp {
        
        public static void main(String[] args) {
            
            try {
                
                Robot robot = new Robot();
                // Capture the screen shot of the area of the screen defined by the rectangle
    			Dimension screen = 	Toolkit.getDefaultToolkit().getScreenSize();
                BufferedImage bi=robot.createScreenCapture(new Rectangle(800,800));
                ImageIO.write(bi, "jpg", new File("graphics1.jpg"));
                
            } catch (AWTException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    Vorrei che al posto di fare lo screenshot dello schermo, facesse lo screenshot di un JFrame è possibile?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Problema diverso, discussione diversa.
    Apri una nuova discussione in cui trattare il nuovo problema.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.