2010-12-08 4 views
0

조치 청취자 내부에서이 작업을 수행하는 방법에 대해 알고 싶습니다. 나는애플릿의 값을 반환 하시겠습니까?

private void (java.awt.event.ItemEvent evt) {             
    if (studentComboBox.getSelectedItem().equals("Student 1")){ 


jlabel1=return parameter ="i" 



String i = getParameter("student2"); 

을 다음 그러나 메신저 반드시 반환 매개 변수

+0

질문이 명확하지 않습니다. 또한 정확한 대소 문자를 사용하지 않습니다. – jzd

+0

코드와 질문은 여전히 ​​의미가 없습니다. 마지막 세 줄은 무엇입니까? 3 개의 매개 변수 또는 1을 검색하려고합니까? – jzd

답변

0

따라서 사용자가 studentComboBox에서 다른 값을 선택하면 jlabel1의 텍스트가 변경되기를 원합니 까? 그렇다면,이 그것을 수행해야합니다 studentComboBoxItemStateChanged 아무것도를 반환 할 필요가 없다는 것을

String h = getParameter("student1"); 
String i = getParameter("student2"); 
String j = getParameter("student3"); 

private void studentComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {             
    if (studentComboBox.getSelectedItem().equals("Student 1")){ 
     jlabel1.setText(h); 
    } else if (studentComboBox.getSelectedItem().equals("Student 2")){ 
     jlabel1.setText(i); 
    } else if (studentComboBox.getSelectedItem().equals("Student 3")){ 
     jlabel1.setText(j); 
    } 
} 

알 수 있습니다. 그냥 jlabel1 개체에서 메서드를 호출하기 만하면됩니다.

1

반환하면 값이 반환 지정할 수 있습니다 올바르지 않습니다 있습니다. 과제를 수행하는 것을 허용하지 않습니다. 메소드를 호출하여 실행 방법을 결정하는 것은 코드에 달려 있습니다.

어쨌든 studentComboBoxItemStateChanged 메서드는 void 메서드입니다. 즉, 값을 반환 할 수 없습니다 (일반 return이 작동하며 메서드가 그대로 유지됩니다).

필요한 것은 귀하와 귀하가 원하는 것입니다. 귀하의 경우에 가장 적합한 솔루션은 아마도 일부 변수를 설정하거나 if 각각의 매개 변수로 일부 기능을 호출하는 것입니다.

편집 당신이 "h"에 jlabel1의 값을 설정하려는 경우, "i", "j"

if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue("h"); } 
.... 

그러나 당신이 변수를 사용하려고h, i하고있는 것 같습니다 j. "h"h과 다릅니다.

if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue(h); } 
.... 

h, ij이 방법 밖에, 인스턴스 변수로 정의 될 필요가있을 것이다, 그렇게 할 수 밖에. 다른 사람이 언급 한 바와 같이

if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue(getParameter("student1")); } 
.... 

, 맵은 다음과 같습니다

이 경우 최고의 솔루션은 라벨을 가정하는 것은 바로 그렇게하는 경우 getParameter ("student1")의 값을 유지한다 이것에 매우 적합합니다.

Map<String, String> prettyNamesToParameterNames= ...; 

private void StudentComboBoxItemStateChanged(java.awt.event.ItemEvent evt) { 
    String paramName=prettyNamestoParameterNames.get(studentComboBox.getSelectedItem()); 
    label1.setValue(getParameter(paramName)); 
} 
0

JComboBox에서 선택한 항목을 기반으로 변수를 설정하려는 것 같습니다. 구문이 잘못되었으므로 return 키워드를 사용할 필요가 없으며 원하는 변수를 설정하기 만하면됩니다.

값을 반환해야하는 경우 반환 할 값을 반환하고 메서드 서명을 변경하여 반환 유형을 지정하십시오.

마지막으로 지저분한 if/else 문을 사용하는 대신 Map을 사용합니다. 나중에 훨씬 더 명확하고 훨씬 효율적으로 훨씬 쉽게 변경할 수 있습니다. 또한, 귀하의 코드 계정이 null이 선택되고 있습니다.

관련 문제