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.