Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// SSCCE modified from the Oracle JInternalFrame example to reproduce OpenJDK issue
- package test;
- import javax.swing.JInternalFrame;
- import javax.swing.JDesktopPane;
- import javax.swing.JDialog;
- import javax.swing.JMenu;
- import javax.swing.JMenuItem;
- import javax.swing.JRootPane;
- import javax.swing.JMenuBar;
- import javax.swing.JFrame;
- import javax.swing.KeyStroke;
- import javax.swing.UIManager;
- import javax.swing.UnsupportedLookAndFeelException;
- import java.awt.event.*;
- import java.awt.*;
- /*
- * InternalFrameDemo.java requires:
- * MyInternalFrame.java
- */
- public class JInternalFrameIcon extends JFrame
- implements ActionListener {
- JDesktopPane desktop;
- public JInternalFrameIcon() {
- super("InternalFrameDemo");
- //Make the big window be indented 50 pixels from each edge
- //of the screen.
- int inset = 50;
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- setBounds(inset, inset,
- screenSize.width/2 - inset*2,
- screenSize.height/2 - inset*2);
- //Set up the GUI.
- desktop = new JDesktopPane(); //a specialized layered pane
- createFrame(); //create first "window"
- setContentPane(desktop);
- setJMenuBar(createMenuBar());
- //Make dragging a little faster but perhaps uglier.
- desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
- }
- protected JMenuBar createMenuBar() {
- JMenuBar menuBar = new JMenuBar();
- //Set up the lone menu.
- JMenu menu = new JMenu("Document");
- menu.setMnemonic(KeyEvent.VK_D);
- menuBar.add(menu);
- //Set up the first menu item.
- JMenuItem menuItem = new JMenuItem("New");
- menuItem.setMnemonic(KeyEvent.VK_N);
- menuItem.setAccelerator(KeyStroke.getKeyStroke(
- KeyEvent.VK_N, ActionEvent.ALT_MASK));
- menuItem.setActionCommand("new");
- menuItem.addActionListener(this);
- menu.add(menuItem);
- //Set up the second menu item.
- menuItem = new JMenuItem("New Window");
- menuItem.setMnemonic(KeyEvent.VK_W);
- menuItem.setAccelerator(KeyStroke.getKeyStroke(
- KeyEvent.VK_W, ActionEvent.ALT_MASK));
- menuItem.setActionCommand("newwindow");
- menuItem.addActionListener(this);
- menu.add(menuItem);
- //Set up the third menu item.
- menuItem = new JMenuItem("Quit");
- menuItem.setMnemonic(KeyEvent.VK_Q);
- menuItem.setAccelerator(KeyStroke.getKeyStroke(
- KeyEvent.VK_Q, ActionEvent.ALT_MASK));
- menuItem.setActionCommand("quit");
- menuItem.addActionListener(this);
- menu.add(menuItem);
- return menuBar;
- }
- //React to menu selections.
- public void actionPerformed(ActionEvent e) {
- if ("new".equals(e.getActionCommand())) { //new
- createFrame();
- } else if ("newwindow".equals(e.getActionCommand())) { //new
- createDialog();
- } else { //quit
- quit();
- }
- }
- //Create a new internal frame.
- protected void createFrame() {
- JInternalFrame frame = new JInternalFrame("Frame", true, true, true, true);
- frame.setSize(600, 400);
- frame.setFrameIcon(null); // TODO: Layout is not adjusted properly
- frame.setVisible(true); //necessary as of 1.3
- desktop.add(frame);
- try {
- frame.setSelected(true);
- } catch (java.beans.PropertyVetoException e) {}
- }
- //Create a new dialog.
- protected void createDialog() {
- JDialog dialog = new JDialog(this, "Dialog", false);
- dialog.setSize(600, 400);
- dialog.setResizable(false);
- dialog.setVisible(true);
- }
- //Quit the application.
- protected void quit() {
- System.exit(0);
- }
- /**
- * Create the GUI and show it. For thread safety,
- * this method should be invoked from the
- * event-dispatching thread.
- */
- private static void createAndShowGUI() {
- //Make sure we have nice window decorations.
- JFrame.setDefaultLookAndFeelDecorated(true);
- //Create and set up the window.
- JInternalFrameIcon frame = new JInternalFrameIcon();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //Display the window.
- frame.setVisible(true);
- }
- public static void main(String[] args) {
- // Set the Windows Look and Feel
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InstantiationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (UnsupportedLookAndFeelException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //Schedule a job for the event-dispatching thread:
- //creating and showing this application's GUI.
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- createAndShowGUI();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement