java - 在 java 中添加对象名称开头并设置文本

标签 java swing

我正在尝试快速学习 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/

相关文章:

java - 从 JTree 事件获取节点值到另一个事件按钮按下

java - Jersey 中的 URI 扩展(.xml、.json)

java - 如何在我的 Web 应用程序中使用 "bigbluebutton"?

java - Vaadin 布局间距

java - new一个File对象,即在磁盘中创建一个文件?

内部类中的 Java KeyListener 由于某种原因未获取事件

java - Facebook 登录按钮未显示在 ActionbarActivity 中

java - 单击 JTable 模型更新 JTextfield

java - 尝试在 GUI 中使用 Jpanel 进行绘制

java - 将面板添加到java中的当前类