|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Apr 2010
Messaggi: 15
|
[java Swing jFrame] Come cambiare elementi visualizzati in un Jframe
Ciao,
Sto creando un'interfaccia grafica per inserimento dati e visualizzazione. Sono alle prime armi con lo Swing quindi utilizzo l'editor visuale di Netbeans per crearle. La mia domanda è: -Come faccio, una volta che l'utente inserisce i dati e preme il jButton per cambiare gli elementi all'interno del JFrame? C'è da settare qualche variabile tipo setVisible? Devo inserlo nel codice dell'evento? Grazie //Ubuntu 9.10, NetBeans 6.7.1, jdk1.6.0; |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: May 2010
Messaggi: 25
|
in pratica quando te crei un bottone dei anche implementare all'interno del codice un ascoltatore (ActionListeners).
detto ascoltatore in pratica (scusami per la frase) rimane in ascolto fino a quando te premi il bottone. alla pressione del bottone entra in funzione il metodo actionPerformed che svolge le funzioni o metodi che hai inserito all'interno. un esempio Codice:
public class prova extends JFrame implements ActionListeners{ JButton b; JTextField f; public prova(){ super("prova"); f=new JTextField("eta"); add(f).setVisible(true); b=new JButton("cambio"); add(b).setVisible(true); b.addActionListener(this); } public actionPerformed(ActionEvent arg0){ if((String)f.getText()=="eta"){ f.setText("beta").setEditable(false); }else { f.setText("eta"); } } |
![]() |
![]() |
![]() |
#3 | |
Junior Member
Iscritto dal: Apr 2010
Messaggi: 15
|
Quote:
Il fatto è che quanto l'utente preme il tasto Cerca, devo "stavolgere" tutto il frame. Il metodo che NetBeans mi autogenera è private void cercaTrenoButtonActionPerformed(java.awt.event.ActionEvent evt) e poi io costruisco il corpo del metodo. Una volta premuto il tasto l'utente dovrebbe riceve una nuova "schermata" che con la prima non mantiene né i campi né i bottoni (praticamente resta uguale solo la grandezza della finestra)... Per fare ciò devo creare un'altro Frame? |
|
![]() |
![]() |
![]() |
#4 | |
Junior Member
Iscritto dal: May 2010
Messaggi: 25
|
Quote:
JDialog in pratica ti costruisce un nuovo frame(cioè come se fosse una finestra in poche parole) con un nuovo JPanel all'interno quindi c puoi mettere tutto quello che vuoi. per esempio (come ho fatto io nel mio programmino) alla pressione del pulsante nel MainFrame(cosi ho chiamato la finestra principale) mi apre una JDialog con all'interno dei JTextField e un altro JButton e una volta chiusa la finestra si ritorna automaticamente al MainFrame |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
E' un layout manager particolare, che ti permette di definire più "configurazioni" da proiettare sulla stessa superficie (sullo stesso frame/dialog che sia). L'idea è che definisci le tue configurazioni, all'apertura della finestra CardLayout mostra la prima, all'action event del pulsante CardLayout mostra la seconda. Link utili: Java Sun tutorial su cardlayout. Una recende discussione su questo forum su CardLayout.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
#6 | ||
Junior Member
Iscritto dal: Apr 2010
Messaggi: 15
|
Quote:
Quote:
Interessante, quando avrò tempo gli darò un'occhiata grazie Molto interessante per i miei scopi. La mia idea era di rendere visibile e invisibili i vari panel inseriti nel frame, anche perché l'utente può poter ritornare alla Home e alle varie schermate. Come posso fare in netbeans (che autogenera molto del codice) per inserire e disinserire(rendere non visibili o rimuoverli?) i vari panel? Vi ringrazio per il tempo, se avete bisogno di qualcosa riguardante Thread, concorrenza, socket e gestione flussi, e info su Java chiedete pure //Ubuntu 9.10, netBeans 6.7.1, jdk 1.6.0 |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:34.