繁体   English   中英

扩展Java摆动按钮?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM