【问题标题】:Using String Variable as Object in GWT在 GWT 中使用字符串变量作为对象
【发布时间】:2013-10-08 01:55:54
【问题描述】:

我有 20 个单选按钮作为单独的停车位。我需要根据可用性启用或禁用。通常,我将它们声明为

   final RadioButton oneA101 = new RadioButton("new name", "New radio button");

以下似乎不起作用:

   String[] allSlotsToDisable={"oneA101","oneB101","oneA102","oneB102"};
    Object[] rb={};

    for(int i=0;i<allSlotsToDisable.length;i++){
        rb[i]=allSlotsToDisable[i];
        ((FocusWidget) rb[i]).setEnabled(false);
    }

DB 返回一组单选按钮,这些单选按钮旨在被禁用,但它们以字符串形式返回。返回的字符串变量是作为对象名称的名称(在本例中为 oneA101)。但是,我不能使用字符串变量来禁用单选按钮。如何使用 String 变量作用于具有相同对象名称的单选按钮?

【问题讨论】:

    标签: java string gwt object radio-button


    【解决方案1】:

    将其放入地图中,然后您可以通过它们的名称(或您想要的任何其他字符串...)访问它们

    private final Map<String,RadioButton> buttonMap = new HashMap<String,RadioButton>();
    

    然后在代码的后面,在创建按钮时:

    final RadioButton oneA101 = new RadioButton("new name", "New radio button");
    buttonMap.put("new name", oneA101);
    

    然后,当您需要解决它们时:

    RadioButton buttonToDoStuffWith = buttonMap.get("new name");
    

    在你的例子中

    String[] allSlotsToDisable={"oneA101","oneB101","oneA102","oneB102"};
    
    for(String toDisable:allSlotsToDisable){
        RadioButton button = buttonMap.get(toDisable);
        if(button!=null) {
            button.setEnabled(false);
        }
    }
    

    (当然要注意这个hashmap的生命周期,使用不当会出问题!)

    【讨论】:

    • 非常感谢@ppeterka 66。这是一个巨大的成功!!!像魔术一样工作。感谢您支持像我这样的新开发者!!!
    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 2012-01-29
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多