PDA

View Full Version : [Java] JTextField


spv42
15-03-2007, 17:40
Ma è possibile che non riesco a scrivere su un JTextField ove ho installato un mio PlainDocument quando il JTextField perde il Focus?



cSconto = new JTextField();
cSconto.setColumns(10);
final ScontoFieldLimit sfl = new mioFieldLimit(5);
cSconto.setDocument(sfl);
cSconto.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent e) {
if (!(cSconto.getText().equals("") || cPrezzo.getText().equals(""))){
cPrezzoAcq.setText(new CalcolaPrezzo(cPrezzo.getText(),cSconto.getText()).getRisultato());
cSconto.setText("3456");
}
}
});

spv42
16-03-2007, 11:36
Uppo

spv42
16-03-2007, 16:14
Nessuno?

^TiGeRShArK^
17-03-2007, 00:30
ehmm..
lasciamo perdere questo discorso ke un pò di tempo fa ho avuto modo di lottare con i Listener di Java :asd:
Non ho capito quello ke devi fare (come lo vuoi implementare invece è kiarissimo...FocusListener).
Devi fare un qualke controllo di consistenza per i dati?
Devi aggiornare automaticamente il tuo text field una volta finito di inserire i dati?
Se mi spieghi esattamente qual'è il tuo scopo (e non come intendi implementarlo :p) magari potrei anke esserti d'aiuto...
e magari risponderanno prima di me pgi-bis o andbin una volta capito il tuo problema :D

spv42
17-03-2007, 17:20
Si, devo aggiornare automaticamente il mio JTextField una volta inserito i dati.

Praticamente, il mio PlainDocument accetta solo numeri.
Quando perde il focus vorrei che abbia un formato numerico, ma con 2 cifre decimeli, arrotondato alla seconda cifra decimale.

Grazie per avermi risposto.

PGI-Bis
17-03-2007, 17:34
Il codice è corretto. Il problema dev'essere da qualche altra parte. Forse la condizione non si verifica mai o il Document fa qualcosa che non dovrebbe o la condizione non si verifica mai perchè il Document fa qualcosa che non avresti voluto.

spv42
19-03-2007, 08:27
Risolto!!

Non Utilizzo setText del JTextField, ma bensì il remove e l'insertString del mioFieldLimit! :D

Grazie Ancora delle risposte.