Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52

    salvare file e leggerlo nel corso dello stesso programma

    Ciao ragazzi! Sto provando a scrivere un file jpg con java (operazione che riesce senza alcun problema), e a rileggerlo, ma non ci riesco...
    In pratica se utilizzo il file x.jpg, anche se lo sovrascrivo, mi rilegge sempre quello che c'è scritto prima dell'esecuzione del programma...

    In pratica, se faccio partire l'applicazione, sovrascrivo il file e le apro con lo stesso programma, mi si apre il file non aggiornato.... Però se lo apro manualmente il file risulta aggiornato!!! Spero di essermi spiegato decentemente...

    Mi sapete dire se è possibile porre qualche rimedio?
    Grazie a tutti e ciao!

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

    Re: salvare file e leggerlo nel corso dello stesso programma

    Originariamente inviato da ziz
    Ciao ragazzi! Sto provando a scrivere un file jpg con java (operazione che riesce senza alcun problema), e a rileggerlo, ma non ci riesco...
    In pratica se utilizzo il file x.jpg, anche se lo sovrascrivo, mi rilegge sempre quello che c'è scritto prima dell'esecuzione del programma...
    Classi/metodi che hai usato per leggere la immagine? Ce n'è una marea di modi per caricare una immagine in Java .....
    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 L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52
    scusami, hai ragione!!

    In pratica utilizzo una libreria java per creare un codice a barre e lo salvo come immagine in un file .jpg.
    Successivamente, il programma chiede all'utente se vuole o meno salvare una pagina all'interno della quale sono presenti questa immagine ed un'altra.
    Per far ciò ho pensato di creare due jpanel e di impostare come sfondo le due immagini che mi servono, il tutto grazie ad un tuo programma leggermente modificato!!

    codice:
    class BackgroundPanel extends JPanel
    {
            private Image img;
            
            public BackgroundPanel (Image img)
            {
                this.img = img;
            }
    
        @Override
        public void paintComponent (Graphics g)
        {
                g.drawImage (img, 0, 0, this);
        }
    
    }
    A loro volta ho incluso questi due jPanel in un altro, che vorrei salvare con questa classe:

    codice:
    public class ComponentToJPEG extends JFrame
    {
        public static void saveComponentAsJPEG(Component myComponent, String filename)
        {
            BufferedImage myImage;
            Dimension size = myComponent.getSize();
            myImage = new BufferedImage(size.width, size.height,BufferedImage.TYPE_INT_RGB);
            java.awt.Graphics2D g2 = myImage.createGraphics();
            myComponent.paint(g2);
            try
            {
                OutputStream out = new FileOutputStream(filename);
                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                encoder.encode(myImage);
                out.close();
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
    }
    Il problema è che non funziona perchè se vado a impostare lo sfondo con:

    codice:
    QRCPanel = new BackgroundPanel(qr);
    mi carica sempre il file nella versione precedente a quella appena salvata....

    Non capisco il perchè...

  4. #4
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52
    Pensavo di aver risolto, e invece niente.... scusami....

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ziz
    Il problema è che non funziona perchè se vado a impostare lo sfondo con:

    codice:
    QRCPanel = new BackgroundPanel(qr);
    mi carica sempre il file nella versione precedente a quella appena salvata....
    Continuo a non vedere dove carichi la immagine .... quel 'qr' è di certo un Image ma .... dove e come lo carichi????
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52
    ah, scusami...
    lo carico così:

    codice:
    File fileqr=new File(".\\qrcode_generato.jpg");
    qr=ImageIO.read(fileqr);
    ora mi sto rivedendo per l'ennesima volta tutto il resto del codice...
    non vorrei sia qualche stupido errore di confuzione....

  7. #7
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52
    Scusami Andbin... mi sono appena reso conto di aver sbagliato un altro passaggio...
    Ora penso funzionerà! Non reinizializzavo una variabile....
    Il problema è che per aggirare tutto il codice autogenerato da questo maledetto NetBeans si finisce per perdere di vista il resto...
    M sai consigliare qualche compilatore java che non generi alcunchè? Magari una via di mezzo tra NetBeans e il Notepad...

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.