ciao ragazzi,
dovrei caricare una serie di img salvate sull'hd, come se fosse un filmato....
il problema che non riesco nemmeno a caricare una foto semplicemente...
mi indicate il codice da utilizzare...grazie
ciao ragazzi,
dovrei caricare una serie di img salvate sull'hd, come se fosse un filmato....
il problema che non riesco nemmeno a caricare una foto semplicemente...
mi indicate il codice da utilizzare...grazie
Al massimo, ti si può dare qualche indicazione sulle classi da utilizzare, poi è tua cura documentarti e cercare di scrivere il codice necessario, da risottoporre eventualmente alla discussione in caso di problemi o errori.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
scusatemi non era mia intenzione scroccare... vi posto il mio codice... mi da errore quando faccio g.drawImage... sapete dirmi perchè? grazie
codice:package progetto; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import javax.swing.JMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPanel; public class Interfaccia{ public static void main(String[] args) { final JFrame frame = new JFrame(); /** INIZIO MENU **/ JMenuBar menu=new JMenuBar(); JMenu file= new JMenu("File"); JMenuItem apri=new JMenuItem("Apri"); JMenuItem chiudi=new JMenuItem("Chiudi"); JMenuItem salva=new JMenuItem("Salva"); JMenuItem esci=new JMenuItem("Esci"); file.add(apri); file.add(salva); file.add(chiudi); file.addSeparator(); //separatore file.add(esci); JMenu admin= new JMenu("Admin"); JMenuItem accedi=new JMenuItem("Accedi"); admin.add(accedi); JMenu help= new JMenu("?"); menu.add(file); menu.add(admin); menu.add(help); /** FINE MENU **/ JPanel root = new JPanel(); Image img; img = java.awt.Toolkit.getDefaultToolkit().getImage("C:\\Documents and Settings\\Administrator\\Desktop\\desktop.jpg"); MediaTracker mt = new MediaTracker(root); mt.addImage(img, 1); try { mt.waitForAll(); } catch (InterruptedException e){ } Graphics g = root.getGraphics(); g.drawImage(img, 30, 30, null); /** ADD al FRAME (menu, panel e settaggi vari!) **/ frame.add(root); frame.setTitle("applicazione"); frame.setSize(500,500); frame.setJMenuBar(menu); frame.setVisible(true); frame.pack(); } }
Il perché è dovuto a quando fai il disegno. L'approccio è proprio fondamentalmente sbagliato.Originariamente inviato da gaetano_cont
scusatemi non era mia intenzione scroccare... vi posto il mio codice... mi da errore quando faccio g.drawImage... sapete dirmi perchè?
In quel punto il "Graphics" del componente non esiste ancora!! getGraphics() restituisce null, non c'è ancora nulla di "materializzato" a video.
Anche supponendo, per ipotesi, che il Graphics sia disponibile in quel punto, sarebbe comunque un painting non appropriato, perché il disegno è fatto fuori dal "contesto" appropriato, che nei componenti AWT è paint(Graphics) e nei componenti Swing è paintComponent(Graphics).
Se devi solo visualizzare banalmente una immagine, allora metti il Image in un ImageIcon e poi quest'ultimo ad esempio in un JLabel (che aggiungi da qualche parte nel content pane ovviamente). Oppure usa direttamente ImageIcon (che può caricare una immagine da un path o URL).
Se proprio vuoi fare del "custom painting", la soluzione più tipica è fare una tua classe che estende JPanel e fare l'override di paintComponent(Graphics). Questo è il "contesto" adatto di disegno e qui dentro puoi fare i disegni che vuoi. Chiaramente devi sapere quando e come questo succede, lo spiega il tutorial Sun: Performing Custom Painting
Quando posti del codice, usa gli appositi tag CODE, come espressamente richiesto dal Regolamento interno, punto 6.
Sistemo io il tuo codice.
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