2011-03-14 9 views
5

메뉴 역할을하는 JComboBox를 만들려고합니다. 예를 들어, 드롭 다운하면 JMenuBar에서와 같이 항목을 선택할 수 있습니다.메뉴 인 JComboBox

그래서 String 대신 JMenus 및 JMenuItems를 사용합니다.

이것이 가능합니까?

+1

JCombobox가 작동하는 방식입니다. 항목을 클릭하여 선택합니다. 콤보 상자에 ActionListener를 추가하여 선택한 항목을 기반으로 처리 할 수 ​​있습니다. 메뉴 및 콤보 상자의 기능을 혼합하여 사용자를 혼동시키는 이유를 알 수 없습니다. – camickr

+0

둘 다 JPopupMenu를 사용하기 때문에 JMenu와 JCombobox 사이에 차이가 보이지 않습니다. JMenu는 JCombobox의 역할을 수행합니다. – u449355

+0

부 메뉴를 가질 수 있기를 바랍니다. 따라서 목록을 삭제하는 대신 메뉴 목록을 삭제하면 해당 메뉴로 이동할 수 있습니다. 내 GUI의 다른 구성 요소와 일관되게하고 싶습니다. 나는 거기에서 무작위 메뉴를 가지고 싶지 않았다. – user489041

답변

2

이 작업을 수행하는 한 가지 방법은 버튼을 클릭하면 버튼 바로 아래에 JPopupmenu가 표시되는 버튼을 만드는 것입니다. 메뉴를 사용하면 메뉴 또는 하위 메뉴에서 선택할 수 있습니다. 메뉴 항목을 선택하면 원래 버튼의 레이블/선택이 변경되어야합니다.

+0

전혀 나쁜 생각이 아니다. – user489041

-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(); 
       } 
      }