Desidero visualizzare le variazioni della stessa immagine nello stesso JFame, ad esempio visualizzare un'immagine in JFrame, quindi sostituirla con una scala di grigi della stessa immagine.Come posso visualizzare una BufferedImage in un JFrame?
risposta
È necessario ridipingere lo JFrame
ogni volta che si aggiorna l'immagine.
Ecco quello che una semplice google sul tema porta in primo piano: (io uso questi tutorial per tutta la codifica mia Java)
Io non sono davvero sicuro di quello che è in discussione, ma se avete a BufferedImage quindi devi semplicemente creare un ImageIcon usando l'immagine, quindi aggiungere l'icona a una JLabel e aggiungere l'etichetta alla GUI come qualsiasi altro componente.
Se la tua domanda è su come creare una scala di grigi, io ti suggerisco di cercare nel web usando quei termini come parole chiave di ricerca, sono sicuro che troverai esempi là fuori.
Per costruire la soluzione di camickr (per i pigri come me che vogliono il codice rapido per copiare/incollare) ecco un'illustrazione di codice:
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(new JLabel(new ImageIcon(img)));
frame.getContentPane().add(new JLabel(new ImageIcon(img2)));
frame.getContentPane().add(new JLabel(new ImageIcon(img3)));
frame.pack();
frame.setVisible(true);
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // if you want the X button to close the app
Questo rende appena possibile la finestra più piccola. –
È passato molto tempo da quando usavo lo swing, ma supponevo che non avessi chiamato 'pack()' se hai una piccola finestra –
esattamente quello che stavo cercando, controlla velocemente se bufferedImages sono letti correttamente .. no è necessario che tutto questo JComponent si estenda e sovrascriva la stampa. Grazie! –