1. 程式人生 > >e614. Setting the Initial Focused Component in a Window

e614. Setting the Initial Focused Component in a Window

use ini jbutton str visible ext for then before

There is no straightforward way to set the initial focused component in a window. The typical method is to add a window listener to listen for the window opened event and then make the desired component request the focus.

    // Create frame and three buttons
    JFrame frame = new JFrame();
    JButton component1 = new JButton("1"
); JButton component2 = new JButton("2"); JButton component3 = new JButton("3"); // Set component with initial focus; must be done before the frame is made visible InitialFocusSetter.setInitialFocus(frame, component2); class InitialFocusSetter { public static void setInitialFocus(Window w, Component c) { w.addWindowListener(new FocusSetter(c)); } public static class FocusSetter extends WindowAdapter { Component initComp; FocusSetter(Component c) { initComp = c; } public void windowOpened(WindowEvent e) { initComp.requestFocus(); // Since this listener is no longer needed, remove it e.getWindow().removeWindowListener(this); } } }

Related Examples

e614. Setting the Initial Focused Component in a Window