JDK-4110480 : Proper keyboard navigation must be implemented on JSplitPane for all L&Fs
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 1.2.0
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_2.4,windows_95
  • CPU: unknown,x86
  • Submitted: 1998-02-09
  • Updated: 1999-01-15
  • Resolved: 1999-01-15
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.2.0 1.2fcsFixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Description
The following navigation, activation and selection keyboard bindings on The following navigation, activation and selection keyboard bindings on JSplitPane need to be implemented for proper operation and key binding sequences. This needs to be done on all L&Fs (Metal, Windows and Motif).

JSplitPane:
                Navigate in - Tab
               Navigate out - Ctrl+Tab, Ctrl+Shift+Tab
           Navigate between - Tab, F6 (last element with focus regains
                                       focus when its pane is moved to,
                                       F6 provides CUA compliance)
    Give focus splitter bar - F8
                Change size - Arrow keys, home, and end
                              (moves the pane splitter appropriately)

Usability:
- A JSplitPane is considered to have focus as soon as one of its child components has the focus.
- F8 while the JSplitPane (one of its child components is in focus) has the focus gives the divider (splitter, split bar) the focus and allows to move it around with the cursor keys. This resize mode is ended by either another (F8 | Tab) where the focus goes to the next component in the JSplitPane, or by (Ctrl+Tab | Ctrl+Shift+Tab) where the focus goes to the next component outside of the JSplitPane.


ralph.kar@Eng 1998-07-27
Here is a test case that can be used to verify the keyboard navigation support in a JSplitPane:

import com.sun.java.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TestApp extends JFrame
{
        public TestApp() {
                super("TestApp (4110480)");

                String[] listdata = {"JList 1", "JList 2", "JList 3",
                                     "JList 4", "JList 5", "JList 6"};
                JList list = new JList(listdata);

                JSplitPane split1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                        true,
                        new JScrollPane(new JTextArea("Upper\nJTextArea")),
                        new JScrollPane(new JTextArea("Lower\nJTextArea")));
                JSplitPane split2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
                        true, new JScrollPane(list), split1);

                JPanel panel = new JPanel(new GridLayout(1, 2));
                panel.add(new JButton("JButton 1"));
                panel.add(new JButton("JButton 2"));

                this.getContentPane().add("Center", split2);
                this.getContentPane().add("South", panel);

                this.addWindowListener(new WindowAdapter() {
                        public void windowClosing(WindowEvent ev) {
                                System.exit(0);
                        }
                });
                this.setSize(300, 300);
                this.setVisible(true);
        }

        static public void main(String args[]) {
                new TestApp();
        }
}

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.2fcs generic swing1.1 FIXED IN: 1.2fcs swing1.1 INTEGRATED IN: 1.2fcs swing1.1
14-06-2004

EVALUATION This needs to be implemented. It will probably be inherited from Basic L&F. jeff.shapiro@Eng 1998-03-17 ralph.kar@Eng 1998-07-27 Talked to Earl today and we agreed on how this is supposed to work (see: description) ralph.kar@Eng 1998-07-30 The whole spec for the keyboard support of the JSplitPane has been somewhat simplified during development. The JSplitPane does not need a special 'navigate in/out' support. This way we keep it compliant with the native Windows L&F. As soon as a component within the JSplitPane has the focus, hitting F8 puts the JSplitPane into keyboard resize mode. You can then use the cursor keys, HOME and END to move the divider of the JSplitPane around. While in keyboard resize mode, the divider is visually highlighted on all L&Fs. To end the resize mode hit TAB or CTRL+TAB in order to get back to the regular focus cycle.
11-06-2004

PUBLIC COMMENTS Proper keyboard navigation must be implemented on JSplitPane for all L&Fs
10-06-2004