Java 在小程序中返回值?
有人知道我如何在一个动作监听器里做这件事吗?我有以下几点Java 在小程序中返回值?,java,applet,Java,Applet,有人知道我如何在一个动作监听器里做这件事吗?我有以下几点 private void (java.awt.event.ItemEvent evt) { if (studentComboBox.getSelectedItem().equals("Student 1")){ jlabel1=return parameter ="i" String i = getParameter("
private void (java.awt.event.ItemEvent evt) {
if (studentComboBox.getSelectedItem().equals("Student 1")){
jlabel1=return parameter ="i"
String i = getParameter("student2");
但我确信return参数不正确return允许您指定要返回的值。它不允许你做作业;由调用您的方法的代码决定如何操作 在任何情况下,您的方法
StudentComboxItemStateChanged
是一个void
方法,这意味着它不能返回值(常规return
有效,它只是离开该方法)
这取决于你和你需要什么。在您的情况下,最好的解决方案可能是在每个if
s中设置一些变量或调用带有参数的函数
如果试图将jlabel1的值设置为“h”
,“i”
,“j”
但看起来您正在尝试使用变量h
、i
和j
。请记住,“h”
与h
不同
if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue(h); }
....
但要做到这一点,h
、i
和j
需要在方法之外定义为实例变量
在这种情况下,假设标签应该包含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));
}
Map prettyNamesToParameterNames=。。。;
私有void studentComboxItemStateChanged(java.awt.event.ItemEvent evt){
String paramName=prettyNamestoParameterNames.get(studentComboBox.getSelectedItem());
label1.setValue(getParameter(paramName));
}
看起来您正试图根据JComboBox中的选定项设置变量。要做到这一点,您的语法是错误的,您不需要使用return关键字,只需设置所需的变量
如果需要返回值,则只需返回要返回的值,并更改方法签名以指定返回类型
最后,不是使用一组杂乱的if/else语句,而是使用映射。它将更加清晰、高效,并且更容易在以后进行更改。此外,您的代码是否说明选择了null。因此,当用户在
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);
}
}
请注意,
studentComboxItemStateChanged
不需要返回任何内容。您只需对jlabel1
对象本身调用方法。您的问题不清楚。另外,你没有使用正确的大写字母。你的代码和问题仍然没有意义。最后三行是什么?您是要检索3个参数还是1个参数?
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);
}
}