gpt4 book ai didi

java - 扩展 JMenu 以给它一个复选框?

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:48 25 4
gpt4 key购买 nike

我计划结合 JMenu 和 JCheckBoxMenuItem,这样我就可以:(1) 包含此新组件实例的弹出菜单。(2) 这个新组件将在左侧有一个复选框,并能够向右展开并显示其他子菜单(如常规 JMenu)

我有几个问题:

首先,我是在重新发明轮子吗?/这以前做过吗?

其次,我试图弄清楚 swing 如何知道如何为扩展组件类获取 UI 类? (例如,我看到 JMenu 有一个 String uiClassID 成员,它以某种方式用于此,但它不是确切的类名...我将它调试到 UIDefaults 中的 HashTable 查找)

最佳答案

  1. 我认为用户看到带有复选框的 JMenu 会感到困惑(如果我理解正确的话,您想将这个东西直接放在 JMenuBar 中)。我不认为以前经常这样做,这是有原因的:)

  2. 使用的 UI 类取决于实际外观。查看javax.swing.plaf.MenuItemUI的子类

此处描述了有关 Swing 架构的完整故事:http://java.sun.com/products/jfc/tsc/articles/architecture/

A look-and-feel implementation provides concrete subclasses for each abstract plaf UI class. For example, the Windows look-and-feel defines WindowsButtonUI, a WindowsScrollBarUI, and so on. When a component installs its UI delegate, it must have a way to look up the appropriate concrete class name for the current default look-and-feel dynamically. This operation is performed using a hash table in which the key is defined programmatically by the getUIClassID() method in the component. The convention is to use the plaf abstract class name for these keys.

编辑:如果你想把它放在弹出菜单中,请注意 JPopupMenu 是一个 JComponent,因此你可以把任何东西放在那里,包括普通的 JCheckBoxes。示例如下:http://www.javarichclient.com/do-more-with-jpopupmenu/

关于java - 扩展 JMenu 以给它一个复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12308168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com