2010-12-08 42 views
0

任何人都知道我可以如何在动作监听器中做这件事?我有以下在applet中返回值?

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


jlabel1=return parameter ="i" 



String i = getParameter("student2"); 

但是我相信返回参数不正确

+0

你的问题还不清楚。另外你没有使用正确的大写字母。 – jzd 2010-12-08 18:33:23

回答

0

因此,当用户在studentComboBox中选择不同的值时,您希望jlabel1更改其文本?如果是这样,应该这样做:

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

注意studentComboBoxItemStateChanged不需要任何回报。您只需简单地调用jlabel1对象本身的方法。

1

返回允许您指定的值返回。它不允许你做任务;取决于调用您的方法来确定如何操作的代码。

在任何情况下,您的方法studentComboBoxItemStateChangedvoid方法,这意味着它不能返回一个值(常规return工作,它只是离开方法)。

这取决于你和你需要什么。在你的情况下,最好的解决方案可能是设置一些变量或在每个if s中用一个参数调用某个函数。

编辑如果你想JLabel1所做的值设置为"h""i""j"

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

但它看起来像你想使用变量hi,和j。请记住"h"h不同。

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

但要做到这一点,hij将需要被定义为实例变量,方法之外。

在这种情况下,最好解决方案,假设标签应持有的getParameter(“student1”)的值,是能够做到这一点:

if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue(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。