PDA

View Full Version : [JAVA] Mi aiutate con la GUI???


PaVi90
04-03-2008, 16:33
Ragazzi ho un problemino: ho inserito in un JFrame un JPanel blu e vorrei che alla pressione di un tasto cambiasse dimensione. Per il tasto gli associo un ascoltatore, e non è un problema... il fatto è che il metodo jPanel1.setSize(int x, int y) non funge!! Sto programmando in NetBeans e il jPanel assume, quando il programma è eseguito, le dimensioni date originariamente tramite l'inserimento e la modellazione del jFrame tramite trascinamento (nella sezione Design).
Ora però mi interesserebbe modificare dinamicamente le dimensioni del jPanel, ma il metodo setSize non funziona! :cry:

:help: :help: :help:

andbin
04-03-2008, 16:48
Ora però mi interesserebbe modificare dinamicamente le dimensioni del jPanel, ma il metodo setSize non funziona! :cry: Le interfacce AWT/Swing si basano tipicamente sull'utilizzo dei "layout manager". È cioè un layout manager che si occupa di posizionare/dimensionare i componenti.
Se non vuoi usare un layout manager, fai un setLayout(null) sul container ma in tal caso sei tu che devi posizionare/dimensionare i componenti (posizionamento assoluto).

PaVi90
04-03-2008, 16:57
Capisco... :(

Invece per quanto riguarda i JFrames... ho creato un nuovo progetto senza main; poi ho inserito un nuovo file nel progetto, un primo JFrame con un pulsante. Ho la necessità, quando il pulsante viene premuto, di chiudere questo jFrame e di aprirne un altro. Con quale codice si realizza ciò? Come creo l'altro JFrame? Sempre da file --> new file??
Grazie ancora :)

banryu79
04-03-2008, 17:38
Ho la necessità, quando il pulsante viene premuto, di chiudere questo jFrame e di aprirne un altro. Con quale codice si realizza ciò?


// chiudi il frame
frameDaChiudere.setVisible(false);


apri il nuovo frame

// assumendo che tu l'hai già creato in memoria
// in questo caso l'oggetto corrente deve avere
// una reference al frame da aprire
frameDaAprire.setVisible(true);

oppure

// se devi crearlo al momento e renderlo visibile:
JFrame nuovoFrame = new JFrame(bla bla);

// imposti gli attributi del frame
// novoFrame.setQuesto(bla bla);
// nuovoFrame.setQuello(bla bla)

// quando è pronto lo visualizzi
nuovoFrame.setVisible(true);


Come creo l'altro JFrame? Sempre da file --> new file??
Grazie ancora :)
Sì, puoi fare un nuovo file .java e definirci la tua classe che estende JFrame oppure puoi costruirlo direttamente da codice, dipende dalle tue esigenze.

Immagino che tu debba personalizzarlo parecchio, magari mettendoci dentro uno o più JPanel, impostando il LayoutManager ecc... quindi alla fine ti converrebbe definire una nuova classe che estende JFrame e personalizzartela con l'editor visuale

PaVi90
04-03-2008, 17:46
Fatto... mi dispiace aver letto il tuo messaggio solo ora... a furia di provare ci ero riuscito :D

Thanks comunque ;)

banryu79
04-03-2008, 19:58
Fatto... mi dispiace aver letto il tuo messaggio solo ora... a furia di provare ci ero riuscito :D

Thanks comunque ;)

Meglio così invece, in molti casi l'esperienza diretta è la migliore insegnate :D
[Per non parlare poi di quanto bene rimangano impresse le cose ottenute col sudore della propria fronte e quanta più soddisfazione ci sia ;)]

PaVi90
04-03-2008, 20:15
Meglio così invece, in molti casi l'esperienza diretta è la migliore insegnate :D
[Per non parlare poi di quanto bene rimangano impresse le cose ottenute col sudore della propria fronte e quanta più soddisfazione ci sia ;)]
Vero vero!! :)