2011-03-14 44 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(); 
       } 
      }