在java swing应用程序中创建复选框

问题描述:

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

如何使用Map键作为名称在java swing应用程序中创建复选框。从服务器

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"); 

使用解析度。以键和值对地图我想创建复选框,其中键是复选框的名称,值是选择该复选框。如果key包含一个值(非空),那么在创建该复选框时应该选择它。地图将被动态地改变,创建复选框应该被添加到JDialog中。在选择结束时,我需要构建地图,并且我想将其发送到服务器。请帮助我。

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

+0

有没有什么办法的形式传输数据[ “091”, “ABCD”, “091”] [ “061”, “einc”,空] ...在这里先为字符串值,第二个用于显示名称,第三个用于选择/未选择。我是否需要对象来表示这种数据并将其与ArrayList一起传输。 class A {string code,string name,string status} .. arraylist.add(new A()) – 2011-05-04 13:59:21

+0

您可以使用'String.split()'将其分解。很多人在这里使用['JTable'](http://download.oracle.com/javase/tutorial/uiswing/components/table.html),并保持数据是'TableModel'。 '布尔'列自动呈现一个复选框。 – 2011-05-04 21:11:52

创建一个数组JCheckBoxs,数组的大小应该是m1的大小。 Iterate超过m1,并相应地初始化JCheckBoxes,例如,如果条目是当前条目(在你的迭代),cbArr是复选框阵列和i中的循环的开始之前被初始化为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(发送到服务器)遍历CheckBox数组并将键作为复选框的当前名称插入,值取决于是否选中该复选框。

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); 
}