2011-03-14 64 views
5

我期待創建一個JComboBox作爲一個菜單。例如,當你放下它時,你可以像選擇JMenuBar一樣選擇項目。JComboBox這是一個菜單

因此,需要JMenus和JMenuItems來代替字符串。

這可能嗎?

+1

這就是JCombobox的工作方式。你點擊一個項目來選擇它。您可以將ActionListener添加到組合框中,以根據所選項目進行處理。我沒有看到通過嘗試混合菜單和組合框的功能來混淆用戶的原因。 – camickr 2011-03-14 18:15:00

+0

我沒有看到JMenu和JCombobox之間的任何區別,因爲兩者都使用JPopupMenu。 JMenu充當JCombobox JCombobox的需求是什麼? – u449355 2011-03-14 18:16:36

+0

我希望它能夠有子菜單。因此,不要僅僅刪除一個列表,而是刪除一個菜單列表,然後可以進入該菜單。我希望它與我的GUI的其他組件保持一致。我不想在那裏有一個隨機菜單 – user489041 2011-03-14 18:16:44

回答

2

完成此操作的一種方法是創建一個按鈕,單擊該按鈕時會在按鈕下方顯示一個JPopupmenu。該菜單將允許用戶從菜單或子菜單中進行選擇。選擇菜單項目時,應更改原始按鈕的標籤/選擇。

+0

不是一個壞主意。 – user489041 2011-03-14 20:47:02

-1

這是你查找的?

//package combo2; 

    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 

    public class Combo2 implements ItemListener { 

JFrame f1; 
JComboBox c; 
JPanel p ; 

JLabel j; 
Combo2() 
{ 
JFrame f1 = new JFrame("Selection"); 
      Container f = new Container(); 
      f.setLayout(new FlowLayout()); 

      String s [] = {"Red","Green","Yellow","Black"}; 
      c = new JComboBox(s); 
      j = new JLabel(); 
      p= new JPanel(); 

      c.addItemListener(this); 

      f1.add(p); 
      p.add(c); 
      p.add(j); 

      f1.setSize(500,500); 
      f1.setVisible(true); 

      } 
      public void itemStateChanged(ItemEvent ie) 
      { 
      String str = (String)c.getSelectedItem(); 
      j.setText(str); 
      } 
       public static void main(String[] args) { 
        Combo2 l = new Combo2(); 
       } 
      }