【问题标题】:Recognizing components in swing?识别摆动中的组件?
【发布时间】:2014-10-21 18:15:01
【问题描述】:

我想跟踪我的组件添加的顺序。 So the first component added is 1, second is 2, etc. When a component is selected and changed, I want to be able to recognize which of these components I'm working with.例如,我在框架中添加了两个组件。然后,我返回并更改第一个组件。我希望能够以某种方式知道我正在使用哪个组件。

为了提供一些上下文,它现在只是一个窗口,您可以在其中添加、拖动和编辑文本。我想跟踪框架中的组件,因为我将该信息发送到另一个类并动态更新。

如果不清楚,我会尝试进一步解释。有谁知道如何实现我想要做的事情?

【问题讨论】:

  • 使用ListSet 在将每个组件添加到GUI 时跟踪它。

标签: java swing


【解决方案1】:

您可以保留每个重要组件的实例变量,当您从组件获取事件时,您可以将其与该实例变量进行比较。

这也可以通过将它们添加到地图来完成。这样您就可以存储元数据(在事件之前):

map.put(button, "My Button");

然后在事件中检索它:

String name=map.get(e.getSource());
assertEquals("My Button", name);

真正的好处是,与按钮相关联的东西不必是字符串,它可以是任何对象。因此,如果您想在单击任何按钮时对某个任意可运行对象执行“运行”方法,您只需要为所有按钮(或所有控件)提供一个事件处理程序,如下所示:

map.get(e.getSource()).run();

又短又甜。

【讨论】:

  • 效果很好,谢谢!我迫不及待地将地图(直到现在我什至不知道)应用到未来的项目中!
猜你喜欢
  • 2014-01-16
  • 1970-01-01
  • 2015-02-04
  • 2010-11-28
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多