ma devo creare un Jframe form ed inserire il codice ?
Grazie
ma devo creare un Jframe form ed inserire il codice ?
Grazie
L'ho provato il programmino ma il netbeans mi da errore, cioè
class TestFrame is public, should be declared in a file named TestFrame.java
che significa ?
Originariamente inviato da jurij7
class TestFrame is public, should be declared in a file named TestFrame.java![]()
Visto che la classe pubblica è TestFrame, quel mio codice devi metterlo in un sorgente TestFrame.java.
O togli il 'public' o lo chiami come ho detto.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ok ci sono riuscito
ma qualora dovessi provarlo su un altro pc come farebbe a trovare l'immagine che ho selezionato.
Devo definire un percorso all'interno del package che sarà uguale per ogni pc?
Se per esempio volessi richiamare questo sfondo e quindi questa classe in un qualsiasi pannello come dovrei fare?
Cioè se volessi invocare questa classe per un qualsiasi JPanel come dovrei effettuare la chiamata?
Per la immagine ... beh, dipende tutto da dove deve essere posizionata e da come deve essere usata.Originariamente inviato da jurij7
ma qualora dovessi provarlo su un altro pc come farebbe a trovare l'immagine che ho selezionato.
Devo definire un percorso all'interno del package che sarà uguale per ogni pc?
Se per esempio volessi richiamare questo sfondo e quindi questa classe in un qualsiasi pannello come dovrei fare?
Intendo dire che ci possono essere diversi casi di utilizzo. Una immagine può "far parte" della applicazione e quindi magari essere messa all'interno del jar della applicazione oppure può essere in una directory comunque associata in modo fisso alla applicazione o può essere una immagine scelta dinamicamente a runtime dall'utente (es. con JFileChooser) o può essere una immagine scaricata dalla rete.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Io ho scelto un'immagine ed ho messo il percorso all'interno del codice ma ovviamente se faccio eseguire il codice su un altro pc. Quindi dovrei stabilire un percorso fisso in modo tale che venga trovata all'interno della cartella del progetto.
Ma per quanto riguarda l'invocazione ?
Cioè posso usare questa classe per invocare lo sfondo per un qualsiasi JPanel e se si come devo invocarla per esempio all'interno del Main del progetto?
Mettere un path assoluto o comunque specifico per un certo S.O. all'interno del sorgente ovviamente non è una buona cosa.Originariamente inviato da jurij7
Io ho scelto un'immagine ed ho messo il percorso all'interno del codice ma ovviamente se faccio eseguire il codice su un altro pc. Quindi dovrei stabilire un percorso fisso in modo tale che venga trovata all'interno della cartella del progetto.
Come ho già detto prima, ci possono essere svariati casi e situazioni.
A) L'immagine fa parte in modo "fisso" della applicazione.
In tal caso è bene che sia una "risorsa" da tenere insieme alle tue classi. Si può quindi usare getResource() (o getResourceAsStream() ) di Class per ottenere un URL (o InputStream) per caricare la immagine. Questa tecnica è ben spiegata qui sul tutorial della Sun.
B) La immagine deve essere scelta a runtime dall'utente.
In tal caso si può usare un JFileChooser per far scegliere all'utente la immagine.
Inoltre ci sono altre possibilità:
La immagine magari può essere messa in una posizione relativa a directory note e conosciute dalla applicazione:
- relativa alla "current working directory"
- relativa alla "home" directory dell'utente
A parte i vari modi, la questione principale è stabilire quale è la relazione (in senso concettuale ... non in termini di path!) tra l'applicazione e la immagine. Cioè chi la "sceglie" e che cosa "deve sapere" la applicazione per poterla usare.
Tutto qui.
La classe BackgroundPanel che ho scritto è una semplicissima classe a sé stante che ha un costruttore che riceve un Image. Questa classe puoi metterla dove vuoi, purché sia "visibile" alla tua applicazione. Puoi metterla nello stesso sorgente di un'altra tua classe (come ho fatto io), puoi metterla in un sorgente a parte, eventualmente anche in un "package".Originariamente inviato da jurij7
Ma per quanto riguarda l'invocazione ?
Cioè posso usare questa classe per invocare lo sfondo per un qualsiasi JPanel e se si come devo invocarla per esempio all'interno del Main del progetto?
La cosa importante è che la classe BackgroundPanel sia "visibile" alla JVM e da una tua classe tu possa crearne una istanza.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
scusa io uso netbeans e se uso il tuo listato il tutto funziona perfettamente ma come faccio a richiamarla se creo il jframe graficamente con netbeans? devo inserire una marea di label quindi nn posso farle a mano perciò preferisco farlo tramite netbeans graficamente però nn so come richiamare la tua classe? mi puoi aiutare? grazie