[英]Extending a java swing button?
我希望每个JButton也具有与之关联的数字或ID。 这就是为什么我决定扩展JButton类以使其成为SuperJButton类的原因。
单击此按钮时,如何在操作事件中包含id / number的值,以便响应此操作的类可以访问id?
另一种不需要子类的替代方法是使用JComponent.putClientProperty(Object key, Object value)
存储与按钮关联的ID。
可以使用getClientProperty(Object key)
检索它。
public void actionPerformed(ActionEvent e)
{
JComponent comp = (JComponent)e.getSource();
KeyObject kObj = (KeyObject)comp.getClientProperty("button.id");
}
这可能会更灵活一些,因为您可以将此ID附加到每个按钮上,而无需使用特定于应用程序的代码,例如,在使用GUI构建器时,更改按钮的创建代码会有些复杂,或者您需要使用已经存在的组件。
您不必更改Action事件。您可以执行此操作,
SuperJButton jButton = (SuperJButton) actionEvent.getSource();
jButton.getId()
jButton.getNumber()
从MVC
角度来看: JButton
是一个view
,并且JButton
类不是放置id
类的更好的地方。 ID的更好位置是在您自己的ButtonModel
实现中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.