昨天写了一遍, 结果提交的时候出错....
所以今天不高兴再写了, 直接上代码.
5个类. 其中3个组件, 1个Layout, 1个测试类.
换了新公司, 网速象乌龟, 顺便BS一下
所以今天不高兴再写了, 直接上代码.
5个类. 其中3个组件, 1个Layout, 1个测试类.
/**
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.LayoutManager;
import java.util.HashMap;
import java.util.Set;
import javax.swing.JPanel;
/**
* Create at Oct 5, 2007 4:49:40 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class MenuPane extends JPanel {
private static final long serialVersionUID = 6309159344110765687L;
private HashMap<Menu, Boolean> map = new HashMap<Menu, Boolean>();
public MenuPane() {
super(new MenuPaneLayout());
}
/**
* Create at Oct 5, 2007 4:50:15 PM<br>
* (non-Javadoc)
*
* @see java.awt.Container#setLayout(java.awt.LayoutManager)
* @deprecated layout is fixed. Don't use this method anyway.
*/
@Override
public void setLayout(LayoutManager mgr) {
super.setLayout(mgr);
}
/**
* Create at Oct 5, 2007 4:52:51 PM<br>
*
* @param menu
*/
public void expand(Menu menu) {
Set<Menu> menus = map.keySet();
for (Menu child : menus) {
map.put(child, false);
}
map.put(menu, true);
// repaint
validate();
}
/**
* Create at Oct 5, 2007 4:54:46 PM<br>
*
* @param menu
* @return
*/
public boolean isExpanded(Menu menu) {
if (!map.containsKey(menu)) {
return false;
}
return map.get(menu);
}
}
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.LayoutManager;
import java.util.HashMap;
import java.util.Set;
import javax.swing.JPanel;
/**
* Create at Oct 5, 2007 4:49:40 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class MenuPane extends JPanel {
private static final long serialVersionUID = 6309159344110765687L;
private HashMap<Menu, Boolean> map = new HashMap<Menu, Boolean>();
public MenuPane() {
super(new MenuPaneLayout());
}
/**
* Create at Oct 5, 2007 4:50:15 PM<br>
* (non-Javadoc)
*
* @see java.awt.Container#setLayout(java.awt.LayoutManager)
* @deprecated layout is fixed. Don't use this method anyway.
*/
@Override
public void setLayout(LayoutManager mgr) {
super.setLayout(mgr);
}
/**
* Create at Oct 5, 2007 4:52:51 PM<br>
*
* @param menu
*/
public void expand(Menu menu) {
Set<Menu> menus = map.keySet();
for (Menu child : menus) {
map.put(child, false);
}
map.put(menu, true);
// repaint
validate();
}
/**
* Create at Oct 5, 2007 4:54:46 PM<br>
*
* @param menu
* @return
*/
public boolean isExpanded(Menu menu) {
if (!map.containsKey(menu)) {
return false;
}
return map.get(menu);
}
}
/**
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;
/**
* Create at Oct 5, 2007 4:18:17 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class Menu extends JPanel implements ActionListener {
private static final long serialVersionUID = -8449353696728405923L;
/** menu button */
private JButton button = new JButton();
/** buttons container */
private JPanel panel = new JPanel();
/** scroll of buttons container */
private JScrollPane scroll = new JScrollPane(panel);
public Menu() {
this("");
}
public Menu(String text) {
button.setHorizontalAlignment(JLabel.CENTER);
button.setText(text);
button.setContentAreaFilled(false);
button.setFocusable(false);
button.addActionListener(this);
setLayout(new BorderLayout());
add(button, BorderLayout.NORTH);
add(scroll, BorderLayout.CENTER);
scroll.setBorder(new EmptyBorder(0, 0, 0, 0));
panel.setLayout(new GridBagLayout());
}
/**
* Create at Oct 5, 2007 4:19:51 PM<br>
* (non-Javadoc)
*
* @see java.awt.Container#setLayout(java.awt.LayoutManager)
* @deprecated layout is fixed. Don't use this method anyway.
*/
@Override
public void setLayout(LayoutManager mgr) {
super.setLayout(mgr);
}
/**
* Create at Oct 5, 2007 4:22:56 PM<br>
*
* @param text
*/
public void setText(String text) {
button.setText(text);
}
/**
* Create at Oct 5, 2007 4:22:49 PM<br>
*
* @return
*/
public String getText() {
return button.getText();
}
/**
* Create at Oct 5, 2007 4:23:24 PM<br>
* (non-Javadoc)
*
* @see javax.swing.JComponent#getMinimumSize()
*/
@Override
public Dimension getMinimumSize() {
return button.getMinimumSize();
}
/**
* Create at Oct 5, 2007 5:14:12 PM<br>
* (non-Javadoc)
*
* @see javax.swing.JComponent#getPreferredSize()
*/
@Override
public Dimension getPreferredSize() {
return button.getPreferredSize();
}
/**
* Create at Oct 5, 2007 5:23:54 PM<br>
* (non-Javadoc)
*
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
MenuPane parent = (MenuPane) this.getParent();
if (parent.isExpanded(this)) {
return;
} else {
parent.expand(this);
}
}
/**
* Create at Oct 5, 2007 5:27:33 PM<br>
*
* @param btn
*/
public void addButton(JButton btn) {
addButton(btn, -1);
}
/**
* Create at Oct 5, 2007 5:29:12 PM<br>
*
* @param btn
* @param index
*/
public void addButton(JButton btn, int index) {
int count = panel.getComponentCount();
if (index != -1) {
int maxIndex = -1;
Component maxComp = null;
GridBagConstraints maxGbc = null;
GridBagLayout layout = (GridBagLayout) panel.getLayout();
for (int i = 0; i < count; i++) {
Component comp = panel.getComponent(i);
GridBagConstraints gbc = layout.getConstraints(comp);
if (gbc.gridy >= index) {
gbc.gridy += 1;
}
layout.setConstraints(comp, gbc);
if (gbc.gridy > maxIndex) {
maxIndex = gbc.gridy;
maxComp = comp;
maxGbc = gbc;
}
}
if (maxIndex < index) {
panel.add(btn, new GridBagConstraints(0, index, 1, 1, 1.0, 1.0,
GridBagConstraints.NORTH, GridBagConstraints.NONE,
new Insets(1, 1, 1, 1), 0, 0));
} else {
maxGbc.weighty = 1.0d;
layout.setConstraints(maxComp, maxGbc);
panel.add(btn, new GridBagConstraints(0, index, 1, 1, 1.0, 0.0,
GridBagConstraints.NORTH, GridBagConstraints.NONE,
new Insets(1, 1, 1, 1), 0, 0));
}
} else {
GridBagLayout layout = (GridBagLayout) panel.getLayout();
for (int i = 0; i < count; i++) {
Component comp = panel.getComponent(i);
GridBagConstraints gbc = layout.getConstraints(comp);
if (gbc.weighty == 1.0d) {
gbc.weighty = 0.0d;
layout.setConstraints(comp, gbc);
}
}
panel.add(btn, new GridBagConstraints(0, count, 1, 1, 1.0, 1.0,
GridBagConstraints.NORTH, GridBagConstraints.NONE,
new Insets(1, 1, 1, 1), 0, 0));
}
}
/**
* Create at Oct 5, 2007 5:29:55 PM<br>
*
* @param button
*/
public void removeButton(JButton button) {
GridBagLayout layout = (GridBagLayout) panel.getLayout();
GridBagConstraints gbc = layout.getConstraints(button);
boolean last = gbc.weighty == 1.0d;
int maxIndex = -1;
Component maxComp = null;
GridBagConstraints maxGbc = null;
int index = gbc.gridy;
int count = panel.getComponentCount();
for (int i = 0; i < count; i++) {
Component comp = panel.getComponent(i);
if (comp == button)
continue;
gbc = layout.getConstraints(comp);
if (gbc.gridy > index) {
gbc.gridy -= 1;
}
if (last && gbc.gridy > maxIndex) {
maxIndex = gbc.gridy;
maxComp = comp;
maxGbc = gbc;
}
layout.setConstraints(comp, gbc);
}
if (last) {
maxGbc.weighty = 1.0d;
layout.setConstraints(maxComp, maxGbc);
}
panel.remove(button);
}
/**
* Create at Oct 5, 2007 5:29:58 PM<br>
*
* @param index
*/
public void removeButton(int index) {
GridBagLayout layout = (GridBagLayout) panel.getLayout();
int count = panel.getComponentCount();
for (int i = 0; i < count; i++) {
GridBagConstraints gbc = layout.getConstraints(panel
.getComponent(i));
if (gbc.gridy == index) {
removeButton((JButton) panel.getComponent(i));
break;
}
}
}
}
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;
/**
* Create at Oct 5, 2007 4:18:17 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class Menu extends JPanel implements ActionListener {
private static final long serialVersionUID = -8449353696728405923L;
/** menu button */
private JButton button = new JButton();
/** buttons container */
private JPanel panel = new JPanel();
/** scroll of buttons container */
private JScrollPane scroll = new JScrollPane(panel);
public Menu() {
this("");
}
public Menu(String text) {
button.setHorizontalAlignment(JLabel.CENTER);
button.setText(text);
button.setContentAreaFilled(false);
button.setFocusable(false);
button.addActionListener(this);
setLayout(new BorderLayout());
add(button, BorderLayout.NORTH);
add(scroll, BorderLayout.CENTER);
scroll.setBorder(new EmptyBorder(0, 0, 0, 0));
panel.setLayout(new GridBagLayout());
}
/**
* Create at Oct 5, 2007 4:19:51 PM<br>
* (non-Javadoc)
*
* @see java.awt.Container#setLayout(java.awt.LayoutManager)
* @deprecated layout is fixed. Don't use this method anyway.
*/
@Override
public void setLayout(LayoutManager mgr) {
super.setLayout(mgr);
}
/**
* Create at Oct 5, 2007 4:22:56 PM<br>
*
* @param text
*/
public void setText(String text) {
button.setText(text);
}
/**
* Create at Oct 5, 2007 4:22:49 PM<br>
*
* @return
*/
public String getText() {
return button.getText();
}
/**
* Create at Oct 5, 2007 4:23:24 PM<br>
* (non-Javadoc)
*
* @see javax.swing.JComponent#getMinimumSize()
*/
@Override
public Dimension getMinimumSize() {
return button.getMinimumSize();
}
/**
* Create at Oct 5, 2007 5:14:12 PM<br>
* (non-Javadoc)
*
* @see javax.swing.JComponent#getPreferredSize()
*/
@Override
public Dimension getPreferredSize() {
return button.getPreferredSize();
}
/**
* Create at Oct 5, 2007 5:23:54 PM<br>
* (non-Javadoc)
*
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
MenuPane parent = (MenuPane) this.getParent();
if (parent.isExpanded(this)) {
return;
} else {
parent.expand(this);
}
}
/**
* Create at Oct 5, 2007 5:27:33 PM<br>
*
* @param btn
*/
public void addButton(JButton btn) {
addButton(btn, -1);
}
/**
* Create at Oct 5, 2007 5:29:12 PM<br>
*
* @param btn
* @param index
*/
public void addButton(JButton btn, int index) {
int count = panel.getComponentCount();
if (index != -1) {
int maxIndex = -1;
Component maxComp = null;
GridBagConstraints maxGbc = null;
GridBagLayout layout = (GridBagLayout) panel.getLayout();
for (int i = 0; i < count; i++) {
Component comp = panel.getComponent(i);
GridBagConstraints gbc = layout.getConstraints(comp);
if (gbc.gridy >= index) {
gbc.gridy += 1;
}
layout.setConstraints(comp, gbc);
if (gbc.gridy > maxIndex) {
maxIndex = gbc.gridy;
maxComp = comp;
maxGbc = gbc;
}
}
if (maxIndex < index) {
panel.add(btn, new GridBagConstraints(0, index, 1, 1, 1.0, 1.0,
GridBagConstraints.NORTH, GridBagConstraints.NONE,
new Insets(1, 1, 1, 1), 0, 0));
} else {
maxGbc.weighty = 1.0d;
layout.setConstraints(maxComp, maxGbc);
panel.add(btn, new GridBagConstraints(0, index, 1, 1, 1.0, 0.0,
GridBagConstraints.NORTH, GridBagConstraints.NONE,
new Insets(1, 1, 1, 1), 0, 0));
}
} else {
GridBagLayout layout = (GridBagLayout) panel.getLayout();
for (int i = 0; i < count; i++) {
Component comp = panel.getComponent(i);
GridBagConstraints gbc = layout.getConstraints(comp);
if (gbc.weighty == 1.0d) {
gbc.weighty = 0.0d;
layout.setConstraints(comp, gbc);
}
}
panel.add(btn, new GridBagConstraints(0, count, 1, 1, 1.0, 1.0,
GridBagConstraints.NORTH, GridBagConstraints.NONE,
new Insets(1, 1, 1, 1), 0, 0));
}
}
/**
* Create at Oct 5, 2007 5:29:55 PM<br>
*
* @param button
*/
public void removeButton(JButton button) {
GridBagLayout layout = (GridBagLayout) panel.getLayout();
GridBagConstraints gbc = layout.getConstraints(button);
boolean last = gbc.weighty == 1.0d;
int maxIndex = -1;
Component maxComp = null;
GridBagConstraints maxGbc = null;
int index = gbc.gridy;
int count = panel.getComponentCount();
for (int i = 0; i < count; i++) {
Component comp = panel.getComponent(i);
if (comp == button)
continue;
gbc = layout.getConstraints(comp);
if (gbc.gridy > index) {
gbc.gridy -= 1;
}
if (last && gbc.gridy > maxIndex) {
maxIndex = gbc.gridy;
maxComp = comp;
maxGbc = gbc;
}
layout.setConstraints(comp, gbc);
}
if (last) {
maxGbc.weighty = 1.0d;
layout.setConstraints(maxComp, maxGbc);
}
panel.remove(button);
}
/**
* Create at Oct 5, 2007 5:29:58 PM<br>
*
* @param index
*/
public void removeButton(int index) {
GridBagLayout layout = (GridBagLayout) panel.getLayout();
int count = panel.getComponentCount();
for (int i = 0; i < count; i++) {
GridBagConstraints gbc = layout.getConstraints(panel
.getComponent(i));
if (gbc.gridy == index) {
removeButton((JButton) panel.getComponent(i));
break;
}
}
}
}
/**
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.border.Border;
/**
* Create at Oct 5, 2007 5:35:54 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class MenuButton extends JButton {
private static final long serialVersionUID = -3625340627252182101L;
private static final Border ROLLOVER_BORDER = BorderFactory.createEtchedBorder();
private static final Border EMPTY_BORDER = BorderFactory.createEmptyBorder(
2, 2, 2, 2);
public MenuButton() {
this("", null);
}
public MenuButton(Icon icon) {
this("", icon);
}
public MenuButton(String text, Icon icon) {
super(text, icon);
this.setContentAreaFilled(false);
setBorder(EMPTY_BORDER);
setFocusable(false);
}
public MenuButton(String text) {
this(text, null);
}
/**
* Create at Oct 5, 2007 5:36:42 PM<br>
* (non-Javadoc)
*
* @see javax.swing.JComponent#processMouseEvent(java.awt.event.MouseEvent)
*/
@Override
protected void processMouseEvent(MouseEvent e) {
if (e.getID() == MouseEvent.MOUSE_ENTERED) {
setBorder(ROLLOVER_BORDER);
} else if (e.getID() == MouseEvent.MOUSE_EXITED) {
setBorder(EMPTY_BORDER);
}
super.processMouseEvent(e);
}
}
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.border.Border;
/**
* Create at Oct 5, 2007 5:35:54 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class MenuButton extends JButton {
private static final long serialVersionUID = -3625340627252182101L;
private static final Border ROLLOVER_BORDER = BorderFactory.createEtchedBorder();
private static final Border EMPTY_BORDER = BorderFactory.createEmptyBorder(
2, 2, 2, 2);
public MenuButton() {
this("", null);
}
public MenuButton(Icon icon) {
this("", icon);
}
public MenuButton(String text, Icon icon) {
super(text, icon);
this.setContentAreaFilled(false);
setBorder(EMPTY_BORDER);
setFocusable(false);
}
public MenuButton(String text) {
this(text, null);
}
/**
* Create at Oct 5, 2007 5:36:42 PM<br>
* (non-Javadoc)
*
* @see javax.swing.JComponent#processMouseEvent(java.awt.event.MouseEvent)
*/
@Override
protected void processMouseEvent(MouseEvent e) {
if (e.getID() == MouseEvent.MOUSE_ENTERED) {
setBorder(ROLLOVER_BORDER);
} else if (e.getID() == MouseEvent.MOUSE_EXITED) {
setBorder(EMPTY_BORDER);
}
super.processMouseEvent(e);
}
}
/**
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
/**
* Create at Oct 5, 2007 4:14:20 PM<br>
* Layout of MenuPane.
*
* @author brad.wu
* @version 0.1
*/
public class MenuPaneLayout extends GridBagLayout {
private static final long serialVersionUID = -1732668875718395337L;
/**
* Create at Oct 5, 2007 4:46:43 PM<br>
* (non-Javadoc)
*
* @see java.awt.GridBagLayout#addLayoutComponent(java.awt.Component,
* java.lang.Object)
*/
@Override
public void addLayoutComponent(Component comp, Object constraints) {
if (constraints instanceof Integer) {
GridBagConstraints gbc = new GridBagConstraints(0,
((Integer) constraints).intValue(), 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0);
super.addLayoutComponent(comp, gbc);
} else {
super.addLayoutComponent(comp, constraints);
}
}
/**
* Create at Oct 5, 2007 5:02:38 PM<br>
* (non-Javadoc)
*
* @see java.awt.GridBagLayout#getConstraints(java.awt.Component)
*/
@Override
public GridBagConstraints getConstraints(Component comp) {
GridBagConstraints gbc = super.getConstraints(comp);
MenuPane parent = (MenuPane) comp.getParent();
if (parent.isExpanded((Menu) comp)) {
gbc.fill = GridBagConstraints.BOTH;
} else {
gbc.fill = GridBagConstraints.HORIZONTAL;
}
return gbc;
}
/**
* Create at Oct 5, 2007 5:11:20 PM<br>
* (non-Javadoc)
* @see java.awt.GridBagLayout#lookupConstraints(java.awt.Component)
*/
@Override
protected GridBagConstraints lookupConstraints(Component comp) {
GridBagConstraints gbc = super.lookupConstraints(comp);
MenuPane parent = (MenuPane) comp.getParent();
if (parent.isExpanded((Menu) comp)) {
gbc.fill = GridBagConstraints.BOTH;
gbc.weighty = 1.0d;
} else {
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weighty = 0.0d;
}
return gbc;
}
}
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
/**
* Create at Oct 5, 2007 4:14:20 PM<br>
* Layout of MenuPane.
*
* @author brad.wu
* @version 0.1
*/
public class MenuPaneLayout extends GridBagLayout {
private static final long serialVersionUID = -1732668875718395337L;
/**
* Create at Oct 5, 2007 4:46:43 PM<br>
* (non-Javadoc)
*
* @see java.awt.GridBagLayout#addLayoutComponent(java.awt.Component,
* java.lang.Object)
*/
@Override
public void addLayoutComponent(Component comp, Object constraints) {
if (constraints instanceof Integer) {
GridBagConstraints gbc = new GridBagConstraints(0,
((Integer) constraints).intValue(), 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0);
super.addLayoutComponent(comp, gbc);
} else {
super.addLayoutComponent(comp, constraints);
}
}
/**
* Create at Oct 5, 2007 5:02:38 PM<br>
* (non-Javadoc)
*
* @see java.awt.GridBagLayout#getConstraints(java.awt.Component)
*/
@Override
public GridBagConstraints getConstraints(Component comp) {
GridBagConstraints gbc = super.getConstraints(comp);
MenuPane parent = (MenuPane) comp.getParent();
if (parent.isExpanded((Menu) comp)) {
gbc.fill = GridBagConstraints.BOTH;
} else {
gbc.fill = GridBagConstraints.HORIZONTAL;
}
return gbc;
}
/**
* Create at Oct 5, 2007 5:11:20 PM<br>
* (non-Javadoc)
* @see java.awt.GridBagLayout#lookupConstraints(java.awt.Component)
*/
@Override
protected GridBagConstraints lookupConstraints(Component comp) {
GridBagConstraints gbc = super.lookupConstraints(comp);
MenuPane parent = (MenuPane) comp.getParent();
if (parent.isExpanded((Menu) comp)) {
gbc.fill = GridBagConstraints.BOTH;
gbc.weighty = 1.0d;
} else {
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weighty = 0.0d;
}
return gbc;
}
}
/**
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import javax.swing.JFrame;
/**
* Create at Oct 5, 2007 5:04:28 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class MenuPaneTest {
/**
* Create at Oct 5, 2007 5:04:28 PM<br>
*
* @param args
*/
public static void main(String[] args) {
Menu menu1 = new Menu("First");
MenuButton b1 = new MenuButton("中");
menu1.addButton(b1);
MenuButton b2 = new MenuButton("华");
menu1.addButton(b2);
MenuButton b3 = new MenuButton("民");
menu1.addButton(b3);
MenuButton b4 = new MenuButton("族");
menu1.addButton(b4, 1);
menu1.removeButton(3);
Menu menu2 = new Menu("Second");
Menu menu3 = new Menu("Third");
MenuPane panel = new MenuPane();
panel.add(menu1, new Integer(0));
panel.add(menu2, new Integer(1));
panel.add(menu3, new Integer(2));
panel.expand(menu2);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.setSize(400, 300);
frame.setVisible(true);
}
}
* Come from Brad.Wu.
*/
package org.brad.menu.pane;
import javax.swing.JFrame;
/**
* Create at Oct 5, 2007 5:04:28 PM<br>
*
* @author brad.wu
* @version 0.1
*/
public class MenuPaneTest {
/**
* Create at Oct 5, 2007 5:04:28 PM<br>
*
* @param args
*/
public static void main(String[] args) {
Menu menu1 = new Menu("First");
MenuButton b1 = new MenuButton("中");
menu1.addButton(b1);
MenuButton b2 = new MenuButton("华");
menu1.addButton(b2);
MenuButton b3 = new MenuButton("民");
menu1.addButton(b3);
MenuButton b4 = new MenuButton("族");
menu1.addButton(b4, 1);
menu1.removeButton(3);
Menu menu2 = new Menu("Second");
Menu menu3 = new Menu("Third");
MenuPane panel = new MenuPane();
panel.add(menu1, new Integer(0));
panel.add(menu2, new Integer(1));
panel.add(menu3, new Integer(2));
panel.expand(menu2);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.setSize(400, 300);
frame.setVisible(true);
}
}