Cześć!
Mam na formatce 25 JTextFieldów. Potrzebuję zrobić coś ala parser, żeby to, co ktoś wprowadzi w pole mogło byc tylko liczbą double. Korzystam z metody KeyReleased listenera KeyListener. Oto co wymodziłem do tej pory.
if(e.getSource() == m00)
{
try {
d_m00 = Double.parseDouble(m00.getText());
repaint();
} catch(NumberFormatException ex) {
m00.setText("0.000");
}
}
if(e.getSource() == m10)
{
try {
d_m10 = Double.parseDouble(m10.getText());
repaint();
} catch(NumberFormatException ex) {
m10.setText("0.000");
}
}
if(e.getSource() == m01)
{
try {
d_m01 = Double.parseDouble(m01.getText());
repaint();
} catch(NumberFormatException ex) {
m01.setText("0.000");
}
}
if(e.getSource() == m11)
{
try {
d_m11 = Double.parseDouble(m11.getText());
repaint();
} catch(NumberFormatException ex) {
m11.setText("0.000");
}
}
Nie zamierzam powielać jednak tego samego kodu 25 razy... no chyba że nie będzie wyjścia. Dlatego zacząłem robić coś takiego.
Object source = e.getSource();
JTextField jtf = (JTextField)source;
try {
double temp = Double.parseDouble(jtf.getText());
} catch(NumberFormatException ex) {
//NIE WIEM CO TU WPISAĆ, ABY ODWOŁAĆ SIĘ DO KOMPONENTU ZNAJĄC JEGO NAZWĘ
String nazwa = jtf.getName();
}
Co zrobić z tą nazwą, aby uzyskać dostęp do JTextFielda? A może jest jakiś inny mało inwazyjny sposób?
Pzdr
Szymon