Mam utworzony jeden formularz za pomocą Swing w Javie. W formularzu użyłem jednego pola tekstowego, na którym muszę ustawić fokus za każdym naciśnięciem klawisza. Jak ustawić fokus na konkretnym komponencie w Javie?Jak ustawić fokus na Textfield w Swing?
Odpowiedz
Czy Component.requestFocus()
dałoby ci to, czego potrzebujesz?
Dzięki, pozwól mi sprawdzić, czy to działa dla mnie czy nie –
Zajęło mi pięć minut, aby znaleźć ... tyle dla "prostego" wyszukiwania :-(- no cóż, dokumenty Java API nie są wzorem jasności i tak :-) – Joey
FYI, [javadocs for JComponent] (http://docs.oracle.com/javase/7/docs/api/index.html) mówią o 'requestFocus()', "użycie tego metoda jest odradzana, ponieważ jej zachowanie zależy od platformy zalecamy użycie [requestFocusInWindow()] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#requestFocusInWindow()). Jeśli chcesz uzyskać więcej informacji na temat fokusu, zobacz [Jak korzystać z podsystemu fokusowego] (http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html), sekcja w Poradniku Java " –
Po przeszukaniu interfejsu API wszystko, co musimy zrobić, to przeczytać API.
Zgodnie z dokumentacją API:
"Ponieważ zachowanie ostrości tej metody jest zależne od platformy, deweloperów zachęca się do użytku requestFocusInWindow gdy możliwe".
To zadziała ..
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Component.requestFocus();
}
});
Należy zauważyć, że wszystkie powyższe opcje z jakiegoś powodu nie udają się w JOptionPane. Po wielu prób i błędów (więcej niż wyżej podanych 5 minut, w każdym razie), tutaj jest to, co w końcu pracował:
final JTextField usernameField = new JTextField();
// ...
usernameField.addAncestorListener(new RequestFocusListener());
JOptionPane.showOptionDialog(this, panel, "Credentials", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
public class RequestFocusListener implements AncestorListener {
@Override
public void ancestorAdded(final AncestorEvent e) {
final AncestorListener al = this;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final JComponent component = e.getComponent();
component.requestFocusInWindow();
component.removeAncestorListener(al);
}
});
}
@Override
public void ancestorMoved(final AncestorEvent e) {
}
@Override
public void ancestorRemoved(final AncestorEvent e) {
}
}
dziękuję za to rozwiązanie. To jedyny sposób zadziałało. – MyPasswordIsLasercats
Można użyć także JComponent.grabFocus();
to te same
Javadoc dla [JComponent.grabFocus()] (http://docs.oracle.com/javase/8/docs/api/javax/swing/JComponent.html#grabFocus--) wyraźnie stwierdza, że ta metoda powinna nie może być użyty przez kod klienta i sugeruje użycie metody 'requestFocusInWindow()', o której już wspominano w innych odpowiedziach. –
- 1. Jak ustawić fokus na materialu TextField?
- 2. Jak ustawić fokus na UserControl (wybierz)?
- 3. Jak ustawić fokus na okno modemu javascript?
- 4. Jak ustawić fokus na widżet Tkintera?
- 5. knockout.js ustawić fokus w szablonie
- 6. Jak ustawić fokus cv :: namedWindow w OpenCV2?
- 7. Jak ustawić fokus na pole tekstowe w iphone?
- 8. Jak ustawić fokus na formancie w formancie niestandardowym?
- 9. Jak ustawić fokus na formant po sprawdzeniu poprawności w .NET
- 10. Jak ustawić fokus na pierwszym polu wprowadzania w BootStrap?
- 11. Jak ustawić kolejność kart w Swing Java?
- 12. Jak ustawić fokus na TextView po rozpoczęciu działania?
- 13. Ustaw fokus na przycisk
- 14. Ustaw fokus na pole tekstowe w WPF
- 15. Java GUI: Jak ustawić fokus na JButton w JPanel na JFrame?
- 16. Zmień Country TextField na Dropdown w SugarCRM
- 17. Ustaw fokus na UITextField w tableCell
- 18. TextField() Ustaw daszka położenie
- 19. ustawienie koloru tła na ExtJS textField
- 20. Jak usunąć fokus w javascript?
- 21. Usuń fokus na pierwszym polu tekstowym
- 22. Jak wymusić fokus na formantów w formularzach okienkowych
- 23. Jak ustawić fokus na dowolnym obiekcie w MS Access przy użyciu VBA
- 24. jak ustawić fokus na polu tekstowym w formularzu okna dialogowego przy użyciu C#
- 25. Jak wykrywać fokus przeglądarki na urządzeniach mobilnych?
- 26. Jak wyrównać w pionie TextField w AS3
- 27. Jak zgubić fokus w GWT
- 28. UITextField stracić fokus zdarzenia
- 29. Jak ustawić ostrość na inne okno?
- 30. Spinner - fokus na pierwszy element
10 pytań, przyjęty żaden z nich odpowiedzi ... –