Focus Probleme

Sebastian29

Erfahrenes Mitglied
Moin moin!

Warum kann ich immer noch nicht den Focus im JTextField mit Tab bzw. Enter wechseln?
Im Hauptprogramm habe ich 2 Methoden ( focusLost und focusGained ) und für jedes JTextField zusätzlich addFocusListener( this ); dastehen.

Was habe ich noch vergessen?

Mein eigenes Komponent für JTextField:

Code:
public class MyTextField extends JTextField 
{
	boolean validDataEntered = false;
	
	public MyTextField() {
		this.requestFocus();
		init();
	}

	public MyTextField(int columns) {
		super(columns);
		this.requestFocus();
		init();
	}

	public MyTextField(String text) {
		super(text);
		this.requestFocus();
		init();
	}

	public MyTextField(String text, int columns) {
		super(text, columns);
		this.requestFocus();
		init();
	}

	public MyTextField(Document doc, String text, int columns) {
		super(doc, text, columns);
		this.requestFocus();
		init();
	}

	// Private initialization routine to be run at construct time
    private void init() {
        // add a key event listener that will consume tab keys until valid data entered in field
        addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                // look for tab keys
            	if( e.getKeyCode() == KeyEvent.VK_ENTER || 
            	    e.getKeyCode() == KeyEvent.VK_TAB ||
            	    e.getKeyChar() == '\t' ) {
                    // if no valid data entered in field, consume event
                    // so that it won't be passed on to focus manager
                    if(!validDataEntered) {
                        e.consume();
                    }
                }
                else {
                    // assume any key other than tab is valid data
                    validDataEntered = true;
                }
            }
        });
    }

    // Override to inform focus manager that component is managing focus changes
    public boolean isManagingFocus() 
    { 
    	return true; 
    }
 
Hi an alle!

Es hat sich doch erledigt!

Ich habe besser eine eigene Klasse, die von FocusManager abgeleitet wird, erstellt! ;-)

Damit kann ich wunderbar mit dem Focus im JTextField hin und her wechseln!

Puuh, war viel Arbeit! *gg* :-)

Gruß
Sebastian
 
Zurück