我有一个在使用 Quaqua 的 OSX 上运行的 Java Swing 应用程序。所有的 TextFields 和 TextAreas 在右键单击时都有一个弹出菜单。这必须由 Quaqua 完成,因为它在 Swing 中不是标准的。
我的问题是:
如何在弹出菜单上设置自己的操作?
请注意。这是关于Quaqua弹出菜单而不是任何 Swing 弹出菜单的问题。如果您对 Quaqua 不熟悉,请不要回答。
弹出菜单与常规菜单相同。Swing 关于菜单的教程涵盖了如何使用它们,如何插入条目,...。阅读该教程应该可以帮助您入门
Quaqua 设置的弹出菜单可以通过设置客户端属性来移除:
myTextField.putClientProperty("Quaqua.TextComponent.showPopup", Boolean.FALSE);
然后,您可以添加自己的 MouseListener 来处理创建自己的弹出菜单。
但是,我还没有想出要使这种更改全局化,因此我必须分别在每个文本字段上设置客户端属性,这有点痛苦。