Guten Tag,
ich mal wieder
Folgendes Problem: Mehrere JTextFields, die alle nur 1 Zeichen zu lassen, ich bräuchte nun eine Möglichkeit den Fokus nach der Eingabe auf das nächste Textfeld zu setzen (so dass ich quasi ein Wort in eins wegschreiben kann und er jeden Buchstaben in ein einzelnes Feld schreibt)
Ich bin bereits soweit gekommen, das ich anhand eines KeyListeners das Ereigniss abfange, wenn ein Buchstabe eingegeben wird (aufruf durch die "keyTyped" Funktion) nun bräuchte ich also so etwas wie "nächste Komponente Fokussieren", also das was ich normalerweise mit "Tab" mache, soll er an der Stelle automatisch machen.
Da ihr ja alle auf Quellcode steht, hier mal der meines kleinen Testprogramms:
Programm erstellt im Grunde nur ein frame, mit ein paar Textfeldern und fängt durch einen KeyListener eine texteingabe ab
ich mal wieder

Ich bin bereits soweit gekommen, das ich anhand eines KeyListeners das Ereigniss abfange, wenn ein Buchstabe eingegeben wird (aufruf durch die "keyTyped" Funktion) nun bräuchte ich also so etwas wie "nächste Komponente Fokussieren", also das was ich normalerweise mit "Tab" mache, soll er an der Stelle automatisch machen.
Da ihr ja alle auf Quellcode steht, hier mal der meines kleinen Testprogramms:
Code:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.MaskFormatter;
public class erstelle_frame
{
JFormattedTextField txt_feld[];
JFrame frame=new JFrame();
public static void main(String[] args)
{erstelle_frame p=new erstelle_frame();p.go();}
public void go()
{
frame.setBounds(5,5,640,480);
frame.setLocale(null);
frame.setVisible(true);
MaskFormatter maske=null;
try {maske=new MaskFormatter("*");} catch (ParseException pa){System.out.println("Error beim Feld Format");};
DefaultFormatterFactory diff=new DefaultFormatterFactory(maske);
KeyListener KL=new KeyListener()
{
public void keyPressed(KeyEvent arg0)
{
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent arg0)
{
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0)
{
// TODO Auto-generated method stub
jumper();
}
};
int i;
int x_position_der_textfelder=10;
txt_feld=new JFormattedTextField[10];
for (i=0;i<10;i++)
{
txt_feld[i] = new JFormattedTextField();
txt_feld[i].setBounds(x_position_der_textfelder,15,15,15);
txt_feld[i].setFormatterFactory(diff);
frame.getContentPane().add(txt_feld[i]);
x_position_der_textfelder=x_position_der_textfelder+25;
txt_feld[i].addKeyListener(KL);
}
frame.repaint();
}
public void jumper()
{
System.out.println("LOS Fokus aufs nächste Textfeld!");
}
}
Programm erstellt im Grunde nur ein frame, mit ein paar Textfeldern und fängt durch einen KeyListener eine texteingabe ab