www.pudn.com > tame.rar > ComboBoxMenuExample.java


/* (swing1.1.1beta2) */
package tame.examples;

import java.awt.FlowLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

import tame.menu.ComboMenuBar;

/**
@author Nobuo Tamemasa
@version 1.0 05/10/99
*/
public class ComboBoxMenuExample extends JFrame {

  public ComboBoxMenuExample() {
    super("ComboBoxMenu Example");

    String[] itemStr = {
      "name"   ,"Red"     ,"Blue",
      "number" ,"255,0,0" ,"0,0,255",
      // separator
      "system" ,"control" ,"controlHighlight" ,"controlShadow",
                "text"
    };

    JMenuItem[] menuItems = new JMenuItem[7];
    menuItems[0] = new JMenuItem(itemStr[ 1]);
    menuItems[1] = new JMenuItem(itemStr[ 2]);
    menuItems[2] = new JMenuItem(itemStr[ 4]);
    menuItems[3] = new JMenuItem(itemStr[ 5]);
    menuItems[4] = new JMenuItem(itemStr[ 8]);
    menuItems[5] = new JMenuItem(itemStr[ 9]);
    menuItems[6] = new JMenuItem(itemStr[10]);

    JMenu[] menus = new JMenu[4];
    menus[0] = new JMenu(itemStr[0]);
    menus[1] = new JMenu(itemStr[3]);
    menus[2] = new JMenu(itemStr[6]);
    menus[3] = new JMenu(itemStr[7]);

    menus[0].add(menuItems[0]);
    menus[0].add(menuItems[1]);
    menus[1].add(menuItems[2]);
    menus[1].add(menuItems[3]);
    menus[3].add(menuItems[4]);
    menus[3].add(menuItems[5]);
    menus[2].add(menus[3]);
    menus[2].add(menuItems[6]);

    JMenu menu = ComboMenuBar.createMenu(menuItems[0].getText());
    menu.add(menus[0]);
    menu.add(menus[1]);
    menu.addSeparator();
    menu.add(menus[2]);

    ComboMenuBar comboMenu = new ComboMenuBar(menu);


    JComboBox combo = new JComboBox();
    combo.addItem(itemStr[ 1]);
    combo.addItem(itemStr[ 2]);
    combo.addItem(itemStr[ 4]);
    combo.addItem(itemStr[ 5]);
    combo.addItem(itemStr[ 8]);
    combo.addItem(itemStr[ 9]);
    combo.addItem(itemStr[10]);

    getContentPane().setLayout(new FlowLayout());
    getContentPane().add(new ComboPanel("Fake ComboBox", comboMenu));
    getContentPane().add(new ComboPanel("ComboBox"     , combo));
  }

  class ComboPanel extends JPanel {
    ComboPanel(String title, JComponent c) {
      setLayout(new FlowLayout());
      setBorder(new TitledBorder(title));
      add(c);
    }
  }

  public static void main (String args[]) {
    ComboBoxMenuExample frame = new ComboBoxMenuExample();
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
	System.exit(0);
      }
    });
    frame.setSize(370, 100);
    frame.setVisible(true);
  }
}