[Java] Problem z ustawianiem focusa

0

Witam. Mam taki problem: mam 2 zakladki (JTabbedPane) - na drugiej mam 2 pola tekstowe, a na pierwszej mam przycisk "Save...". Jesli klikne na niego to sprawdzane jest czy oba pola sa wypelnione i jesli nie to pisany odpowiedni komunikat z dwoma niestandardowymi przyciskami: "Continue" - po tym otwiera sie save dialog i zapisuje; drugi przycisk to "Go to 2nd tab" - powoduje wyszukanie ktore pole jest puste. Teraz jets ten problem - pokazuje sie druga zakladka, i focus powinien byc ustawiony na jedno z tych pol ktore jest puste. Pisze powinno bo nie dziala. Ponizej przedstawiam kod tego przycisku:

private void save() {
        if (nameField.getText().length() == 0 || actionField.getText().length() == 0) {
            Object[] options = { "Go to 2nd tab", "Continue" };
            int result = JOptionPane.showOptionDialog(this,
                    "Field is empty empty", "Empty", JOptionPane.YES_NO_OPTION, 
                    JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
            if (result == JOptionPane.YES_OPTION) {
                goToEmptyField();
                return;                
            } else if (result == JOptionPane.CLOSED_OPTION) {
                return;
            }
       }
        //tutaj mam kod na save dialoga, on dziala

Metode goToEmptyField() przedstawiam ponizej:

void goToEmptyField() {
        tabs.setSelectedIndex(1);
        tabs.requestFocusInWindow();
        JTextField field =  (nameField.getText().length() == 0) ? nameField : actionField;
        field.requestFocusInWindow();
    }

Kod na szukanie odpowiedniego pola dziala, sprawdzalem. Co nie dziala to metody requestFocusInWindow(). Czy ktos juz robil kiedys cos takiego? Czytalem w dokumentacji ale niewiele tam jest na temat.
Uzywam Java SDK 1.5.1.

0

temat stary, ale jeżeli komuś pomoże, to metoda reauestFocusInWindow() działa tylko na frame który jest już ustawiony na visible

1 użytkowników online, w tym zalogowanych: 0, gości: 1