|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
[Java]Esportare i dati da Jtextfield
Salve a tutti
Vi spiego la mia situazione, ho creato una finestra di dialogo con la joptionpane, dove inserire un valore intero, con il quale si apre una jdialog, che a seconda del intero precedentemente inserito, crea un tot di tab con all'interno un jpanel che contiene jtextfild e jcombobox, tutti uguali per ogni tab. Ora il mio problema è come catturare i dati presenti nei campi di testo e nelle combobox provenienti da tutti i tab, e renderli disponibili per la sucessiva esportazione in un file di testo al termine delle sucessive operazioni. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
bè si...ma allora non mi sono spiegato bene se mi rispondi così, ti mostro la classe che ho creato per realizzare la jdialog con i tab
Codice:
super(parent, "Movimentazione", true);
Container cnt = getContentPane();
cnt.setLayout(new BoxLayout(cnt, BoxLayout.Y_AXIS));
JTabbedPane jtab = new JTabbedPane();
JPanel[] panel = new JPanel[x];
for(int k = 0; k<x;k++){
panel[k] = new JPanel();
JLabel[] lbl = new JLabel[20];
JComboBox[] jcbox = new JComboBox[3];
String[] strMov = {"Codice Ditta Sogg. Obb.: ", ecc ecc};
String[] tipoString = {"A","C", "D", "E", "F", "G","R"};
String[] tipoRic = {"I", "C", "A","D"};
String[] tipoReg = {"M", "L","S","D","G","F","N","C"};
int nL = 0;
for (int j = 0; j< strMov.length;j++){
lbl[nL] = new JLabel(strMov[j]);
nL++;
}
txt[0] =new JFormattedTextField("nome");
txt[0].setVisible(false);
txt[1] = new JFormattedTextField(createFormatter("#############"));
txt[2] = new JFormattedTextField(createFormatter("########"));
jcbox[0] = new JComboBox(tipoString);
ecc
ecc
panel[k].add(txt[8]);
jtab.addTab("Mov"+(k+1), panel[k]);
cnt.add(jtab);
spero di essere stato più chiaro grazie |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Una soluzione è astrarre il tipo di dato aggregato X che l'utente deve formare e definire un editor per quel tipo di dato dove con "editor" intendo semplicemente un componente interattivo, dotato del numero necessario di controlli, per il quale siano defniti un mutatore ed un accessore di tipo X.
Fatto ciò quando devi fornire al'utente la possibilità di creare il valore - composto - X, inserisci nell'interfaccia l'editor per X e quando vuoi recuperare il valore modificato usi l'accessore dell'editor. Si tratta comunque di un problema di architettura e questa è solo una delle possibili soluzioni.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
I componenti che visualizzi a seconda del valore scelto dall'utente nella prima finestra hanno una loro ragione d'essere: se visualizzi un certo gruppo di componenti anzichè un'altro sarà perchè quel gruppo esprime i valori che sono necessari affinchè il tuo programma possa produrre un certo "dato".
Dato può essere una stringa o dieci stringhe, o tre stringhe, due interi, ventimila enumerativi e tre byte - s'è c'è più di un'informazione in quel dato si parla di aggregato. Bene, quello che fai quando dici all'utente "scegli un valore che poi ti faccio vedere io che componenti devi usare" è permettere all'utente di formare uno tra diversi tipi di dato aggregato. Una soluzione al tuo problema di design sfrutta esattamente questa comunione trai diversi controlli dell'interfaccia: tutti quanti partecipano alla produzione di un unico valore - del tipo specificato nel dato aggregato. Hai da una parte il tuo dato: Codice:
public class Dato {
private String nome, cognome, azienda, tricche e ballacche;
private int[] matrice;
private List<String> ecchessaramai;
...getter e setter (tecnicamente accessori e mutatori) a strafottere
}
Codice:
public class Editor {
private JComponent component;
public Dato get() {return component;}
public void set(Dato d) {...}
public JComponent getComponent() {...}
public void setListener o setObserver o quel che preferisci.
}
Il listener o l'observer o quel che preferisci è il tramite per notificare al resto del programma che l'editor ha prodotto un valore.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:49.





















