2010-12-08 12 views
0

Wer weiß, wie ich das in einem Action-Listener tun kann? Ich habe folgendesRückgabe von Werten in einem Applet?

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


jlabel1=return parameter ="i" 



String i = getParameter("student2"); 

Aber ich bin sicher Rückgabeparameter

+0

Ihre Frage ist unklar. Außerdem verwenden Sie nicht die korrekte Großschreibung. – jzd

+0

Ihr Code und Ihre Frage machen immer noch keinen Sinn. Was sind die letzten drei Zeilen? Versuchen Sie, 3 Parameter oder 1 abzurufen? – jzd

Antwort

0

Also, wenn der Benutzer einen anderen Wert in der studentComboBox wählt, möchten Sie die jlabel1 seinen Text ändern? Wenn ja, dies sollte es tun:

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

Beachten Sie, dass studentComboBoxItemStateChanged nichts zurückgeben muss. Sie rufen einfach Methoden auf dem Objekt jlabel1 selbst auf.

1

Return nicht korrekt ist können Sie einen Wert angeben, zurückzukehren. Es erlaubt Ihnen nicht, eine Aufgabe zu erledigen; Es liegt an dem Code, der Ihre Methode aufgerufen hat, um zu bestimmen, wie zu handeln ist.

In jedem Fall ist Ihre Methode studentComboBoxItemStateChanged eine void Methode, was bedeutet, dass es keinen Wert zurückgeben kann (regulär return funktioniert, es verlässt nur die Methode).

Es liegt an Ihnen und was Sie brauchen. Die beste Lösung in Ihrem Fall ist wahrscheinlich, eine Variable zu setzen oder irgendeine Funktion mit einem Parameter in jedem der if s aufzurufen.

EDIT Wenn Sie den Wert von jLabel1 zu "h" setzen sind versucht, "i", "j"

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

Aber es sieht aus wie Sie die Variablen zu verwenden sind versuchth, i und j. Denken Sie daran, dass sich "h" von h unterscheidet.

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

Aber das zu tun, h, i und j werden als Instanzvariablen definiert werden müssen, außerhalb des Verfahrens.

Die beste Lösung in diesem Fall sollte das Etikett unter der Annahme, den Wert von getParameter („student1“) hält, genau das zu tun ist:

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

Als jemand anders erwähnt, wäre eine Karte sein sehr gut geeignet für diese

0

Es sieht so aus, als ob Sie versuchen, eine Variable basierend auf einem ausgewählten Element in einer JComboBox festzulegen. Um dies zu tun, müssen Sie das Schlüsselwort return nicht verwenden. Setzen Sie einfach die gewünschte Variable.

Wenn Sie einen Wert zurückgeben müssen, geben Sie einfach den Wert zurück, den Sie zurückgeben möchten, und ändern Sie die Methodensignatur, um den Rückgabetyp anzugeben.

Schließlich, anstatt eine Reihe von unordentlichen if/else-Anweisungen verwenden Sie eine Karte. Es wird viel klarer, viel effizienter und später viel einfacher zu ändern sein. Ist Ihr Codekonto für die Auswahl von null aktiviert?

Verwandte Themen