|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
[JAVA]Disperato, disperatissimo, java...
Ciao a tutti... sono sull'orlo di una crisi di nervi...
devo consegnare una prova di progetto java entro lunedi', ho provato di tutto ma per vari motivi la mia preparazione non e' ancora sufficiente... e non riesco a venire a capo della situazione... vi prego aiutatemi..... ![]() ![]() ![]() In sostanza il progetto prevede la "generazione" di una tabella nella quale compaiono scritte e immagini. E fin qui tutto bene. Il problema e' che dovrei far si' che il contenuto della tabella, e quindi il numero di righe e di colonne, vari in base alla dimensione della finestra !!! Ve lo giuro ho provato di tutto ma non ce la fo' !!! Allego il link al file .zip dove c'e' il file (FinestraZodia.java) che mi sta facendo impazzire... non e' che qualcuno puo' darmi due dritte ?!? Ho tempo fino a lunedi'.... ![]() ![]() ![]() http://www.webalice.it/gioriv/progetto.zip Ultima modifica di V3ntuR4tz : 02-07-2005 alle 15:37. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
E' una tragedia vi prego qualcuno mi aiuti......
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
se puo' aiutare....
import javax.swing.JPanel ; import javax.swing.JFrame ; import java.awt.Graphics ; import java.awt.Image ; import zodiaco.* ; /** Questa riga inizia la definizione di una niova classe */ public class FinestraZodia extends JPanel { Zodia zodiaco = new Zodia() ; /** Inizializza il pannello che poi sarà inserito nella finestra. */ public FinestraZodia() { Segno Aries = new Ariete("Aries", "img/ariete.jpg") ; Segno Taurus = new Toro("Taurus", "img/toro.jpg") ; Segno Gemini = new Gemelli("Gemini", "img/gemelli.jpg") ; Segno Cancer = new Cancro("Cancer", "img/cancro.jpg") ; Segno Leo = new Leone("Leo", "img/leone.jpg") ; Segno Virgo = new Vergine("Virgo", "img/vergine.jpg") ; Segno Libra = new Bilancia("Libra", "img/bilancia.jpg") ; Segno Scorpius = new Scorpione("Scorpius", "img/scorpione.jpg") ; Segno Sagittarius = new Sagittario("Sagittarius", "img/sagittario.jpg") ; Segno Capricornus = new Capricorno("Capricornus", "img/capricorno.jpg") ; Segno Acquarius = new Acquario("Acquarius", "img/acquario.jpg") ; Segno Pesces = new Pesci("Pesces", "img/pesci.jpg") ; zodiaco.aggiungiSegno(Aries) ; zodiaco.aggiungiSegno(Taurus) ; zodiaco.aggiungiSegno(Gemini) ; zodiaco.aggiungiSegno(Cancer) ; zodiaco.aggiungiSegno(Leo) ; zodiaco.aggiungiSegno(Virgo) ; zodiaco.aggiungiSegno(Libra) ; zodiaco.aggiungiSegno(Scorpius) ; zodiaco.aggiungiSegno(Sagittarius) ; zodiaco.aggiungiSegno(Capricornus) ; zodiaco.aggiungiSegno(Acquarius) ; zodiaco.aggiungiSegno(Pesces) ; } /** Metodo ereditato dalla classe JPanel serve per aggiornare il pannello. */ public void paint(Graphics g) { // stampa le informazioni di testo dello zodiaco. Segno[] segni = zodiaco.elencoAnimali() ; System.out.println("Ci sono "+segni.length+" segni:") ; for(int i=0 ; i<segni.length ; i++) { Segno a = segni[i] ; System.out.println(a.dimmiNome()+", "+a.categoria()+", dice "+a.faiPredizione()) ; } // dati per visualizzazione delle img nella finestra // il numero di ammagini per ogni riga int numero_colonne = 3 ; // larghezza forzata per le immagini int larghezza_immagini = 100 ; // altezza fortzata per le immagini int altezza_immagini = 100 ; // spazio verticale tra due immagini dove stampare il testo int spazio_testo = 40 ; // colonna corrente int colonna = 100 ; // posizione x iniziale int start_x = 10 ; // posizione attuale per stampare un'immagine int x=start_x, y=spazio_testo ; // per ogni segno faccio stampare l'img e la predizione for(int i=0 ; i<segni.length ; i++) { Segno a = segni[i] ; g.drawString(a.dimmiNome()+": "+a.faiPredizione(), x, y) ; // se non c'e' la foto, stampa un testo di default. Image im = a.immagine() ; if(im!=null) { g.drawImage(im, x, y, larghezza_immagini, altezza_immagini, this) ; } else { g.drawString("Foto N/A", x, y+spazio_testo) ; } // avanza di una colonna colonna++ ; // se ho ragguinto il massimo delle colonne, riparto a disegbare da sinistra if(colonna >= numero_colonne) { x = start_x ; y += altezza_immagini + spazio_testo ; colonna = 0 ; } else { // altrimenti vado verso destra x += 150 + larghezza_immagini ; } } } /** Metodo main che istanzia un pannello e lo inserisce in una finestra. */ public static void main(String[] args) { JFrame frame = new JFrame("Graphic output"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); frame.getContentPane().add(new FinestraZodia()); frame.setVisible(true); } } |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
SCusa, ma devi allargare o scorrere la finestra?
__________________
My gaming placement |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Ma il requisito di mostrare tante immagini in base alla dimensione della finestra è un requisito del progetto?
perche altrimenti puoi risolvere semplicemente utilizzando un JScrollPane che ti permette di scorrere il contenuto della finestra in modo da visualizzare le parti nascoste
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Ecco, intendevo dire anche io la stessa cosa.
Se usi un JScrollPane credo che diventi ttto più semplice.
__________________
My gaming placement |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
Ecco si' penso che potrebbe andare bene !
Come posso implementare jscrollpane ? PS: vi ricordo che di java non ne capisco una benemerita ![]() Nel file FinestraZodia.java dove devo mettere jscrollpane ? Mi fate un esempio ? vi preeeeeego ![]() ![]() |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
Dove crei la JTable:
myJScrollPane = new JScrollPane(myJTable); nella parte di programma dove aggiungevi ad un container la myJTable ora ggiungerai l'oggetto myJScrollPane naturalmente... vorrei cmq esortare tutti ad usare la documentazione Java così ben fatta! Se avessi raccolto il consiglio di usare una JScrollPane e fossi andato a consultare la documentazione avresti già fatto... ![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
Non ce la posso fare...
![]() ![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
In piu' non riesco neanche a mettere la applet in un file html... non mi apre
l'applet... sara' che io nel file html gli ho inserito solo un file .class mentre ce ne sono tanti altri ? Nell'html dovrei specificare tutti i file .class o solo quello di visualizzazione ? (FinestraZodia.class) Mi scuso con tutti gli utenti e i moderatori per l'ESTREMA SFRONTATEZZA con la quale sto ponendo queste domande, ma la disperazione e' massima... Seguo il forum da tanti anni, e non lo avevo mai "imbrattato" cosi'... chiedo venia, veramente... ![]() ![]() ![]() PS: e grazie di cuore a chi ha risposto fin'ora ![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
Se io tramite prompt dei comandi scrivo:
per compilare: javac FinestraZodia.java viene generato il file class. Dopo di che scrivo: java FinestraZodia e tutto funziona. Quando pero' nel file html metto il tag <APPLET> e gli indico il file .class FinestraZodia.class mi dice che non riesce a caricare l'applet... qualche consiglio ? |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Ma per forza devi usare un'applet? IO non ne ho mai fatta una quindi non so aiutarti...
Con lo JScrollPane hai risolto o no?
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
Proviamo qualche soluzione:
- La classe principale estende la classe JApplet ?? - Hai inserito l'applet usando i giusti tag? <html> <head> <title>titolo</title> </head> <body> <APPLET CODE="nomeClassePrincipale.class" height="x" width="y"> Questo programma richiede un browser abilitato per Java </APPLET> </body> </html> |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
Sono commosso, grazie mille a tutti per le risposte.
Dunque ribadisco che ne capisco molto poco di java... pero' quanto dice alvaro mi fa venire un dubbio effettivamente... Il listato che ho postato un po' sopra mostra l'intero contenuto del file .class (o meglio la sua versione .java) che mi interessa integrare come applet nel file html... secondo voi in quel listato manca qualcosa ? O meglio manca, come dice alvaro, il comando che : "fa estendere la classe Japplet alla classe principale" ??? E se manca, cosa diavolo dovrei inserire ? La scadenza e' stata posticipata a martedi', quindi ho ancora domani per lavorarci su'... vi prego aiutatemi... so che chiedo molto... vorrei poter fare qualcosa per ricambiare.... ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Io ho letto il tuo codice e no mipare che tua bbia implementato un'applet ma solo un'applicazione da avviare col comando
java FinestraZodia
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
Quote:
Ah ecco ! Grande ecco dove sta l'inghippo ! Come potrei fare quindi ? |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Come ti ho detto no mi sono mai occupato diapplet,prova a trovare qualke guida o tutorial online
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Dec 1999
Città: Torino
Messaggi: 100
|
Ci provo.... nel mentre qualcuno se sa' qualcosa.....
|
![]() |
![]() |
![]() |
#20 |
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
Premetto che anche io non ho mai realizzato applet cmq ho letto che:
La classe principale di un Applet Java deve estendere la classe javax.swing.JApplet per far questo la tua classe (mi pare che tu ne abbia una sola) deve essere dichiarata così: public class FinestraZodia extends javax.swing.JApplet { etc...etc... } il problema è che la tua classe estende già la classe JPanel e Java non permette l'ereditarietà multipla. Quindi una soluzione (forse) sarebbe creare una classe Principale che estende JApplet e che poi nel suo metodo di inizializzazione crea un oggetto della classe FinestraZodia. Il metodo di inizializzazione è init() e viene invocato in fase di caricamento dell'applet e tu devi ridefinirlo nella tua classe Principale. Forse dentro init() potresti metterci ciò che era nel tuo "main". Riassumendo dovresti provare questo: public class Principale extends javax.swing.JApplet { public void init() { JFrame frame = new JFrame("Graphic output"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); frame.getContentPane().add(new FinestraZodia()); frame.setVisible(true); } } (ovviamnete mancano tutti gli "import" del caso...) spero di esserti stato di aiuto... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:10.