gpt4 book ai didi

java - JRadioButtonMenuItem 不是 JRadioButton 扩展

转载 作者:行者123 更新时间:2023-12-02 07:24:41 26 4
gpt4 key购买 nike

看下面的图片并注意JRadioButtonMenuItem不要扩展JRadioButton ,甚至不是JToggleButton 。我的猜测是他们重复了代码。 :P或者也许他们在这些切换组件中有一个中间类?

enter image description here

最佳答案

问题是 Java 不支持多重继承,否则您可以考虑让 JRadioButtonMenuItem 扩展 JMenuItemJRadioButton (尽管它不清楚这是否是一个好的实现选择)。

因此,这意味着您必须选择其中之一,在本例中,我们选择扩展 JMenuItem

现在,如果您看一下,您会发现 JMenuItemJRadioButton 有一个共同的祖先,即 AbstractButton,它实际上封装了 ButtonModel 其中存储与按钮当前状态相关的所有内容(已启用、已选择等...)。

对于JRadioButtonMenuItem,它使用ToggleButtonModel,因此这里您可以了解JRadioButton如何共享相同的模型>JRadioButtonMenutItem

关于 View ,这全部委托(delegate)给 BasicRadioButtonMenuItemUI,尤其是更多委托(delegate)给 BasicMenuItemUI(它是 BasicRadioButtonMenuItemUI 的父级)。最终它依赖于当前的外观来提供不同的图标、样式、边框、字体等...

整个事情就是这样进行的。

关于java - JRadioButtonMenuItem 不是 JRadioButton 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702919/

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