2016-07-22 8 views
0

Java Swing을 처음 사용했습니다. 아래 요구 사항을 달성하는 방법에 대해 도와주세요.JComboBox 인덱스가 프로그래밍 방식으로 설정된 경우 ItemListener가 실행됩니다.

버튼을 클릭하면 대화 상자를 열어야합니다. 내 대화 상자에는 2 JComboBox이 있습니다. 나는 JComboBox1ItemListner을 작성하여 JComboBox2에 값을 채 웁니다.

내가 지금 필요한 것은 대화로드입니다. JComboBox1에 수동으로 항목을 설정하고 ItemListnerJComboBox2에 대해 실행해야합니다.

아래 코드는 대화 상자를 여는 메서드에서 사용하고 있습니다. 그러나 ItemListener는 대신 ItemListener

JComboBox jComboBox1; 

populateJComboBox(); // Method to populate JComboBox1 

jComboBox1.setSelectedIndex(0); 

ItemListener il = new ItemListener() { 
    public void itemStateChanged(ItemEvent ie) { 
    populateJComboBOx2(); 
    } 
}; 
jComboBox1.addItemListener(il); 
+1

1) 더 도움이 필요한 빨리하는 [MCVE] 또는 [짧은,자가 포함 된 게시 구현 발사되지 올바른 예] (http://www.sscce.org/). 2) 일반적인 Java 명명법 (예 :'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute'가'UPPER_CASE_CONSTANT'가 아닌 경우)을 배우고 일관되게 사용하십시오. 3) [질문 편집] (http://stackoverflow.com/posts/38522124/revisions) 왼쪽의 주석을 참조하십시오. –

답변

2

는이 ActionListener

public class ComboBoxDemo implements ActionListener { 
... 
    jComboBox1.addActionListener(this) { 
... 
public void actionPerformed(ActionEvent e) { 
    if(e.getSource().equals(jComboBox1)){ 
     populateJComboBox2(); 
    } 
} 
} 

Java Docs Link for more Information

+0

jComboBox1.addActionListener (신규의 ActionListener() { 공개 무효의 actionPerformed (ActionEvent의 전자) { 경우 (e.getSource (같음) (jComboBox1)) { populateJComboBox2(). }}} ); - 시도했지만 작동하지 않습니다. 내가 코멘트에 코드를 형식화하는 방법을 모르겠습니다. – pankti

+0

을 포맷 할 수 없으므로 유감입니다. 1. populateJComboBox2에서 Panel의 유효성을 다시 검사하고 다시 칠할 수 있습니까? 2. ActionListener Methode에 일부 출력을 추가하면 이벤트가 트리거되는지 또는 – mayha