【发布时间】:2019-04-19 17:16:30
【问题描述】:
所以更具体地说,我希望能够执行“changeLabel(lableHere, textHere);” 但我不知道如何指定标签。 为了简化我想要的请求
public static void method1(String TextToSet){
if(variable.isVisible()==false){
variable.setVisible(true);
variable.setText(TextToSet);
}else if(variable.isVisible()==true){
variable.setVisible(false);
}
}
public static void method2(String TextToSet){
if(variable2.isVisible()==false){
variable2.setVisible(true);
variable2.setText(TextToSet);
}else if(variable2.isVisible()==true){
variable2.setVisible(false);
}
}
或我目前正在使用的:
public static void method(String VariableIWantToChange, String TextToSet){
if(VariableIWantToChange.equalsIgnoreCase("Variable1"){
if(Variable1.isVisible()==false){
Variable1.setVisible(true);
Variable1.setText(TextToSet);
}
else if(Variable1.isVisible()==true){
Variable1.setVisible(false);
}
}
if(VariableIWantToChange.equalIgnoreCase("Variable2"){
if(Variable2.isVisible()==false){
Variable2.setVisible(true);
Variable2.setText(TextToSet);
}
else if(Variable2.isVisible()==true){
Variable2.setVisible(false);
}
}
}
(该方法在几个变量之后变得非常长)
相反,有一种类似这样的方法
public static void method( Labeltochange ,String TextToSet){
if(Labeltochange.isVisible()==false){
Labeltochange.setVisible(true);
Labeltochange.setText(TextToSet);
}
}
允许你通过method(LabelToChange, TextToSet);更改标签
【问题讨论】:
-
只使用
JLabel作为参数并像method(variable, "someText")一样调用它有什么问题? -
记录在案:A)超出我的回答,即使是“映射”方法也很可能是不好的做法。但为了真正帮助您,我们必须了解您实际打算解决的问题(去谷歌“XY 问题”)。但这可能会使您的问题“过于宽泛”。 B)因为一些新手经常忘记这一点:请不要忘记在某个时候接受答案。
-
等一下,如果我这样做
method(JComponent Label, String Text);然后我可以使用标签参数来设置要设置文本的标签吗?编辑 - 编码格式失败:P -
感谢您的快速回归!