我正在尝试快速学习 java 并寻找一种方法来在我的 java 应用程序中设置多个标签的文本。
我有一个java应用程序,可以启动\停止\检查Windows服务的状态。我有一个方法,它传递这些服务名称的数组,并且每个服务都有一个包含其状态的相应标签。例如,数组中包含 DummyService1,并且有一个名为 txt_DummyService1 的标签。我的方法(简短版本)执行以下操作
public static void Checker(String Array[])
{
//check status of DummyService1
"txt_"+DummyService.Text = "started";
}
我意识到这不是您执行此操作的方式,但是有人可以帮助我找到执行此操作的最佳方法吗?
最佳答案
无法以这种方式从String
生成“变量”名称。是的,您可以使用反射,但这已经引发了关于设计质量的问题。
相反。将每个标签放入按其名称键入的 Map
中。
private Map<String, JLabel> labelLookup = new HashMap<>(25); // Instance variable.
在构造函数中(或构建 UI 的任何位置),将每个标签添加到 Map
。
/* Other UI code */
labelLookup.put("DummyService1", txt_DummyService1);
现在,当您需要进行更改时,只需按标签名称查找标签即可
// You had better have a VERY good reason for making this static...
public void checker(String services[])
{
for (String service : services) {
JLabel label = labelLookup.get(service);
if (label != null) {
label.setText("Started");
}
}
}
例如...
关于java - 在 java 中添加对象名称开头并设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225621/