Как задать элемент, изначально находящийся в фокусе? - Java
Формулировка задачи:
Как мне задать элемент, изначально находящийся в фокусе? requestFocus работает только после отображения окна на экране, а мне хотелось бы задать енто дело в конструкторе окна... Использую менеджер компоновки BorderLayout и по умолчанию фокус ставится на элемент, находящийся в области BorderLayout.NORTH, а мне нужно начинасть с BorderLayout.CENTER... Есть там классы унаследованные от FocusTravelsalPolicy, но вот настроек у них никаких... разве что унаследовать с переопределением собственных методов, но это как-то слишком сложно для такой простой (и думается распространенной) операции
Решение задачи: «Как задать элемент, изначально находящийся в фокусе?»
textual
Листинг программы
public class MyForm extends JFrame { private JTextField textField1 = new JTextField("Default Focus"); private JTextField textField2 = new JTextField("My Focus"); private WindowAdapter wa; public MyForm() { getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5)); getContentPane().add(textField1); getContentPane().add(textField2); wa = new WindowAdapter() { public void windowActivated(WindowEvent e) { textField2.requestFocusInWindow(); e.getWindow().removeWindowListener(wa); wa = null; } }; addWindowListener(wa); } public static void main(String[] args) { MyForm f = new MyForm(); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д