Java/Swing JFC/RootPane
Содержание
An example of interacting directly with the JRootPane of a JFrame
<source lang="java">
/* Java Swing, 2nd Edition By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole ISBN: 0-596-00408-7 Publisher: O"Reilly
- /
// RootExample.java //An example of interacting directly with the JRootPane of a JFrame. // import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JRootPane; public class RootExample {
public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JRootPane root = f.getRootPane(); // XXX Pay attention to these Container content = root.getContentPane(); // XXX lines. They get more content.add(new JButton("Hello")); // XXX explanation in the book. f.pack(); f.setVisible(true); }
}
</source>
Another example of interacting with the root pane
<source lang="java">
/* Java Swing, 2nd Edition By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole ISBN: 0-596-00408-7 Publisher: O"Reilly
- /
// RootExample2.java //Another example of interacting with the root pane. We set the menubar //for the frame directly through the root pane in this example. // import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JRootPane; public class RootExample2 {
public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JRootPane root = f.getRootPane(); // Create a menu bar JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("File"); bar.add(menu); menu.add("Open"); menu.add("Close"); root.setJMenuBar(bar); // Add a button to the content pane root.getContentPane().add(new JButton("Hello World")); // Display the UI f.pack(); f.setVisible(true); }
}
</source>
Interact directly with the JRootPane of a JFrame
<source lang="java">
import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JRootPane; public class Main {
public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JRootPane root = f.getRootPane(); Container content = root.getContentPane(); content.add(new JButton("Hello")); f.pack(); f.setVisible(true); }
}
</source>
Make a JFrame looks like a JDialog
<source lang="java">
import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JRootPane; public class Main extends JFrame {
public Main() { setTitle("like JDialog"); setSize(new Dimension(500, 100)); setUndecorated(true); setResizable(false); getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { new Main().setVisible(true); }
}
</source>
No direct interaction with JRootPane
<source lang="java">
/* Java Swing, 2nd Edition By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole ISBN: 0-596-00408-7 Publisher: O"Reilly
- /
// RootExample3.java //Similar to RootExample2, but this version uses the setJMenuBar() method //from JFrame to attach the menu. No (direct) interaction with JRootPane //is needed. // import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; public class RootExample3 extends JFrame {
public RootExample3() { super("RootPane Menu Demo"); setSize(220, 100); setDefaultCloseOperation(EXIT_ON_CLOSE); // Create a menu bar JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("File"); bar.add(menu); menu.add("Open"); menu.add("Close"); setJMenuBar(bar); // Add a button to the content pane getContentPane().add(new JButton("Hello World")); } public static void main(String[] args) { RootExample3 re3 = new RootExample3(); re3.setVisible(true); }
}
</source>