⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blockcombobox.java

📁 利用Swing组件在弹出式菜单项间画分隔线
💻 JAVA
字号:
// File: BlockComboBoxExample.java/* (swing1.1) *///package jp.gr.java_conf.tame.swing.examples;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.plaf.metal.*;import javax.swing.plaf.basic.*;/** * @version 1.0 12/25/98 */  public class BlockComboBoxExample extends JFrame {  final String SEPARATOR = "SEPARATOR";  public BlockComboBoxExample() {    super("Block ComboBox Example");          String[][] str = {{"A"  ,"B"  ,"C"  },                      {"1"  ,"2"  ,"3"  },                      {"abc","def","ghi"}    };                          JComboBox combo = new JComboBox(makeVectorData(str));    combo.setRenderer(new ComboBoxRenderer());    combo.addActionListener(new BlockComboListener(combo));        getContentPane().setLayout(new FlowLayout());    getContentPane().add(combo);    setSize(300, 100);    setVisible(true);  }    private Vector makeVectorData(String[][] str) {    boolean needSeparator = false;    Vector data = new Vector();    for (int i=0;i<str.length;i++) {      if (needSeparator) {        data.addElement(SEPARATOR);      }      for (int j=0;j<str[i].length;j++) {        data.addElement(str[i][j]);        needSeparator = true;      }    }    return data;      }  public static void main (String args[]) {    BlockComboBoxExample frame = new BlockComboBoxExample();    frame.addWindowListener(new WindowAdapter() {      public void windowClosing(WindowEvent e) {        System.exit(0);      }    });  }        class ComboBoxRenderer extends JLabel implements ListCellRenderer {    JSeparator separator;    public ComboBoxRenderer() {      setOpaque(true);      setBorder(new EmptyBorder(1, 1, 1, 1));      separator = new JSeparator(JSeparator.HORIZONTAL);    }    public Component getListCellRendererComponent( JList list,            Object value, int index, boolean isSelected, boolean cellHasFocus) {      String str = (value == null) ? "" : value.toString();      if (SEPARATOR.equals(str)) {        return separator;      }      if(isSelected) {        setBackground(list.getSelectionBackground());        setForeground(list.getSelectionForeground());      } else {        setBackground(list.getBackground());        setForeground(list.getForeground());      }       setFont(list.getFont());      setText(str);      return this;    }    }    class BlockComboListener implements ActionListener {    JComboBox combo;    Object currentItem;        BlockComboListener(JComboBox combo) {      this.combo  = combo;      combo.setSelectedIndex(0);      currentItem = combo.getSelectedItem();    }        public void actionPerformed(ActionEvent e) {      String tempItem = (String)combo.getSelectedItem();      if (SEPARATOR.equals(tempItem)) {        combo.setSelectedItem(currentItem);      } else {        currentItem = tempItem;      }    }  }}Posted On: 7-Jan-1999 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -