相同的Jbutton在同一JPanel的多个实例中选择了状态?

时间:2015-06-12 14:30:58

标签: java swing jbutton

我有一个切换JButton,当点击时,可以安装或卸载其他地方的一些监听器(但我相信这有点无关紧要,因为它可能只是你不想连续执行任何次数的任何代码因此,切换,你点击它一次,它做了什么,你再次点击它,它撤消那些东西或其他)。我的问题是我有几个这个按钮的实例(或更具体地说,它的父JPanel的几个实例)。 这个限制不是我的行为,我无法阻止这种情况。基本上,我的情况是,用户可以连续多次“打开”按钮,不用说,这给我搞砸了。

按钮本身并非一次对用户可见,在任何给定时间只能看到一个按钮。我尝试使用组件侦听器,但从不调用componentHidden()和componentShown()。

我尝试将按钮设为单身,但是这只有这种奇怪的效果,只显示添加到最后一个面板上的按钮。

我有点难过。我想要的行为很简单:此切换按钮的多个实例同步其选定状态。想法?

P.S。我想我可以构建一个实例列表,并在点击其中一个时更新所有其他状态,但我想知道是否有更简单的东西。

由于

2 个答案:

答案 0 :(得分:2)

是的,按钮必须都是不同的,但它们可以共享相同的ButtonModel或相同的Action。通常,我尝试让它们通过创建一个扩展AbstractAction的Action来共享Actions,并使用它来设置所有相同按钮的Actions。

答案 1 :(得分:0)

这里没有大的透露。我使用自己的建议解决了我的问题,也就是说,我只是保留了按钮的所有实例的列表,并在他们共享的动作中点击任何一个按钮时设置它们的状态。