import java.awt.AWTKeyStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
public class MainClass extends JFrame {
public MainClass() {
super("Focus Example");
setDefaultCloseOperation(EXIT_ON_CLOSE);
MyPanel mypanel = new MyPanel();
JButton button1 = new JButton("One");
JButton button2 = new JButton("Two");
JButton button3 = new JButton("Three");
JButton button4 = new JButton("Four");
JButton button5 = new MyButton("Five*");
JButton button6 = new MyButton("Six*");
JButton button7 = new JButton("Seven");
mypanel.add(button2);
mypanel.add(button3);
JInternalFrame frame1 = new JInternalFrame("Internal Frame 1", true, true, true, true);
frame1.setBackground(Color.lightGray);
frame1.getContentPane().setLayout(new GridLayout(2, 3));
frame1.setSize(300, 200);
frame1.getContentPane().add(button1);
frame1.getContentPane().add(mypanel);
frame1.getContentPane().add(button4);
frame1.getContentPane().add(button5);
frame1.getContentPane().add(button6);
frame1.getContentPane().add(button7);
JDesktopPane desktop = new JDesktopPane();
desktop.add(frame1, new Integer(1));
desktop.setOpaque(true);
// Now set up the user interface window.
Container contentPane = getContentPane();
contentPane.add(desktop, BorderLayout.CENTER);
setSize(new Dimension(400, 300));
frame1.setVisible(true);
setVisible(true);
}
public static void main(String[] args) {
new MainClass();
}
}
class MyButton extends JButton {
public MyButton(String s) {
super(s);
}
public boolean isFocusable() {
return false;
}
}
class MyPanel extends JPanel {
public MyPanel() {
super(true);
java.util.Set upKeys = new java.util.HashSet(1);
upKeys.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_UP, 0));
setFocusTraversalKeys(KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, upKeys);
}
public boolean isFocusCycleRoot() {
return true;
}
}
|