【问题标题】:Creating checkboxes in Java Swing application在 Java Swing 应用程序中创建复选框
【发布时间】:2019-09-16 01:41:55
【问题描述】:

我正在创建此应用程序以通过发送所选单元来与 servlet 通信,如果单元主服务器有任何更改,则以带有空值的映射形式发送这些单元。从桌面上,我只需要从服务器获取选定单元的数据。最初服务器将所有单元和相关数据发送到桌面应用程序,再次在桌面选择后,我们需要连接到服务器以获取数据。为此,我需要显示带有地图中名称的复选框。

如何在 Java Swing 应用程序中使用 Map 键作为名称创建复选框。假设最初来自服务器

Map<String, String> m1 = new HashMap<String, String>();    
    m1.put("091","091");
    m1.put("061","061");
    m1.put("001","001");
    m1.put("032","031");

在桌面应用中选择后,应该是

Map<String, String> m1 = new HashMap<String, String>();    
        m1.put("091","091");
        m1.put("061",null);
        m1.put("001",null);
        m1.put("032","031");

有水库。对于映射的键和值对,我想创建复选框,其中键是复选框的名称,值是选择该复选框。如果键包含一个值(非空),则在创建该复选框时应选中它。地图将动态更改,并且应将创建复选框添加到 JDialog。在选择结束时,我需要构建地图并将其发送到服务器。

【问题讨论】:

    标签: java swing checkbox


    【解决方案1】:

    我总是从Check Boxes 教程中的示例开始。如果这不是您的意思,可以编辑您的问题吗?

    【讨论】:

    • 有什么方法可以传输["091","ABCD","091"] ["061","einc",null]形式的数据....这里是第一个字符串用于值,第二个用于显示名称,第三个用于选择/未选择。我是否需要对象来表示这种数据并使用arraylist 传输它。 A类{字符串代码,字符串名称,字符串状态} .. arraylist.add(new A())
    • 您可以使用String.split() 将其分解。这里很多人使用JTable 并保留数据是TableModelBoolean 列通过复选框自动呈现。
    【解决方案2】:

    创建JCheckBoxs的数组,数组的大小应该是m1的大小。 Iterate over m1 并相应地初始化 JCheckBoxes,例如,如果 entry 是当前条目(在您的迭代中),cbArr 是复选框数组,我在循环开始之前初始化为 0:

    cbArr[i] = new JCheckBox(entry.getKey());
    if (entry.getValue() != null)
    {
        cbArr[i].setSelected(true);
    }
    else
    {
        cbArr[i].setSelected(false);
    }
    yourPanel.add(cbArr[i++]);
    

    这是基本的,创建更新的 HashMap(发送到服务器)迭代 CheckBoxes 数组并插入键作为复选框的当前名称,值取决于复选框是否被选中。

    Hash<String,String> m2 = new HashMap<String,String>();
    for (int i = 0; i < cbArr.length; i++)
    {
        m2.put(cbArr[i].getText(), cbArr[i].isSelected() ? cbArr[i].getText() : null);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多