- package ex;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Insets;
- import javax.swing.JButton;
- import javax.swing.JComponent;
- import javax.swing.JLayeredPane;
- import javax.swing.JPanel;
- import javax.swing.JTabbedPane;
- import javax.swing.JToolBar;
- import javax.swing.OverlayLayout;
- import javax.swing.border.LineBorder;
- public class PartPanel extends JPanel {
- private static final Insets insets = new Insets(0, 0, 0, 0);
- void addComponent(Container container,
- Component component,
- int gridx,
- int gridy,
- int gridwidth,
- int gridheight,
- int anchor,
- int fill) {
- GridBagConstraints gbc = new GridBagConstraints(gridx,
- gridy,
- gridwidth,
- gridheight,
- 1.0,
- 1.0,
- anchor,
- fill,
- insets,
- 0,
- 0);
- container.add(component, gbc);
- }
- public JPanel contentPanel = new JPanel();
- public JTabbedPane tabbedPanel = new JTabbedPane();
- public JButton maxBtn = new JButton("Max");
- public JButton minBtn = new JButton("Min");
- public PartPanel() {
- this.setBorder(new LineBorder(Color.BLACK));
- this.setLayout(new OverlayLayout(this));
- {
- JLayeredPane mainPane = new JLayeredPane();
- mainPane.setLayout(new GridBagLayout());
- {
- JComponent p = tabbedPanel;
- p.setAlignmentX(0.0f);
- p.setAlignmentY(0.0f);
- addComponent(mainPane, p, 0, 0, 1, 1, GridBagConstraints.NORTH, GridBagConstraints.BOTH);
- }
- {
- {
- JButton btn = maxBtn;
- btn.setSize(20, 20);
- btn.setMaximumSize(new Dimension(20, 20));
- btn.setMinimumSize(new Dimension(20, 20));
- btn.setPreferredSize(new Dimension(20, 20));
- btn = minBtn;
- btn.setSize(20, 20);
- btn.setMaximumSize(new Dimension(20, 20));
- btn.setMinimumSize(new Dimension(20, 20));
- btn.setPreferredSize(new Dimension(20, 20));
- }
- {
- JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0));
- panel.setAlignmentX(0.0f);
- panel.setAlignmentY(0.0f);
- panel.add(maxBtn);
- panel.add(minBtn);
- mainPane.setLayer(panel, 1);
- // mainPane.add(btn, BorderLayout.NORTH);
- addComponent(mainPane,
- panel,
- 0,
- 0,
- 2,
- 1,
- GridBagConstraints.NORTHEAST,
- GridBagConstraints.NONE);
- }
- }
- this.add(mainPane);
- }
- init();
- }
- private void init() {
- // TODO Auto-generated method stub
- this.tabbedPanel.add("title A", new JPanel());
- this.tabbedPanel.add("title B", new JPanel());
- this.tabbedPanel.add("title C", new JPanel());
- }
- }
- package ex;
- import java.awt.BorderLayout;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JSplitPane;
- public class OverlayLayoutTestPanel1 extends JPanel {
- public OverlayLayoutTestPanel1() {
- super(new BorderLayout());
- JSplitPane jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
- jsp.setOneTouchExpandable(true);
- jsp.setDividerLocation(0);
- jsp.setRightComponent(new PartPanel());
- jsp.setLeftComponent(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new PartPanel(), new PartPanel()));
- this.add(jsp, BorderLayout.CENTER);
- }
- }
-
- package ex;
- import javax.swing.JFrame;
- public class UITests {
- private static void createAndShowGUI() {
- //Create and set up the window.
- JFrame frame = new TestFra(new OverlayLayoutTestPanel1());
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(400, 300);
- frame.setVisible(true);
- }
- /**
- * 2008-10-20
- * @param args
- */
- public static void main(String[] args) {
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- createAndShowGUI();
- }
- });
- }
- }