import java.awt.BorderLayout; import javax.swing.*; public class FocusCycleRootTest { public static void main(String[] args) { JFrame window = new JFrame("Test"); window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JPanel rootPanel = new JPanel(); rootPanel.setLayout(new BorderLayout()); JPanel formPanel = new JPanel(); formPanel.setFocusTraversalPolicy(new LayoutFocusTraversalPolicy()); formPanel.setFocusCycleRoot(true); JRadioButton option1 = new JRadioButton("Option 1", true); JRadioButton option2 = new JRadioButton("Option 2"); ButtonGroup radioButtonGroup = new ButtonGroup(); radioButtonGroup.add(option1); radioButtonGroup.add(option2); formPanel.add(option1); formPanel.add(option2); formPanel.add(new JTextField("Another focusable component")); rootPanel.add(formPanel, BorderLayout.CENTER); JButton okButton = new JButton("OK"); rootPanel.add(okButton, BorderLayout.SOUTH); window.add(rootPanel); window.pack(); window.setVisible(true); } }