在一个表格上我有一个多列表,其中每个项目都有一个“名称”和一个“ID号”。我希望我的应用程序执行以下操作:
选择一个项目后,它将转到“个人资料”屏幕,然后根据我将从存储中获取的“ID号”显示该人的所有信息。
如何从我刚点击的Multilist项目中获取信息? 然后,我如何保存该信息,以便我可以在“显示前(配置文件屏幕)”中使用它,以便我可以从存储中检索信息。 Thnaks
答案 0 :(得分:2)
我建议您使用MultiButton而不是Multilist,然后您可以将actionEvent添加到单个元素。
您可以将单个元素保存到actionEvent中的静态变量中,并在配置文件表单的before show中使用它。例如:
全球宣布:
private static String UserName = "";
并按如下方式初始化:
Container content = new Container(new BoxLayout(BoxLayout.Y_AXIS));
content.setScrollableY(true);
for (int i = 0; i < YourItemsLength; i++) {
final MultiButton mb = new MultiButton("Blablabla");
mb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
UserName = mb.getTextLine1(); // or anything you want it to be
//show the profile form here
}
});
content.addComponent(mb);
}
content.revalidate();
在profile的beforeShow()中,调用UserName,您应该能够使用该值。对所需的所有值执行相同的操作。
答案 1 :(得分:1)
我完全同意Diamonds的回答,我认为这是创建项目列表的最佳/最简单的方法。但是,如果您仍想使用MultiList
,则需要实施ListModel
或使用DefaultListModel
。
根据您的问题,我假设您刚刚使用MultiList
并填写了值?
在这种情况下,如果列表中有一个动作事件,您只需获取列表实例即可调用Map m = (Map)myList.getSelectedItem();
地图应返回包含数据的键/值对。通过以不同于rendererd列表元素的方式命名它们,您可以在该数据中隐藏密钥,这样您就可以使用“id”作为键。