2015-01-12 2 views
0

Window Builder에서 설정 한 Model을 사용하려고합니다.JCombobox 모델 사용 방법?

'comboBox.setModel(new DefaultComboBoxModel(new String[] {"Easy", "Medium", "Hard"}));' 

나는이 문장을 "쉬운", "보통", "어려운"If 문으로 사용하는 법을 모릅니다. 전체 코드가 있습니다. 당신은 다음의 ItemListener이 사용할 수

String item = (String)comboBox.getSelectedItem(); 

:

JComboBox comboBox = new JComboBox(); 
     comboBox.setMaximumRowCount(3); 
     comboBox.setModel(new DefaultComboBoxModel(new String[] { "Easy", 
       "Medium", "Hard" })); 
     comboBox.setFont(new Font("Tahoma", Font.PLAIN, 16)); 
     comboBox.setBounds(101, 67, 194, 39); 
     frame.getContentPane().add(comboBox); 
     comboBox.addItemListener(new ItemListener() { 
      public void itemStateChanged(ItemEvent event) { 
       if (event.getStateChange() == ItemEvent.SELECTED) 
        Snake.dificaulty = 1; // this variable is telling about difficulty level 
      } 

     }); 
+0

WindowBuilder에 대한 경고. 당신이 이해하지 못하는 코드를 생성합니다. 이해할 수없는 코드가있는 경우 이와 같은 문제가 발생합니다. – CaffeineToCode

+0

'comboBox'를 final로 정의하십시오. ItemListener에서 접근 할 수 있고 여러 가지 방법으로 값을 얻을 수 있습니다 : 선택한 항목의 색인'comboBox.getSelectedIndex()'(귀하의 경우 0 - Easy, 1 - Medium ...); 또는'comboBox.getSelectedItem(). toString()'과 같은 텍스트 값을 사용할 수 있습니다. – Ivan

답변

1

이 뭔가를 할 것이다. 복잡한 작업을 수행하는 경우 복잡한 작업을 수행하는 다른 방법을 작성한 다음 itemStateChanged() 메서드에서 호출하여 ItemEvent 변수를 전달합니다.

1

ItemListener에서 이벤트 소스에 액세스 할 수 있습니다. 그런 다음 콤보 상자의 속성에 액세스 할 수 있습니다.

JComboBox comboBox = (JComboBox)e.getSource(); 
String item = (String)comboBox.getSelectedItem(); 

콤보 상자를 마지막으로 만들 필요가 없습니다.