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

Java 在同一JPanel的多个实例中选择相同的Jbutton状态?,java,swing,jbutton,Java,Swing,Jbutton,我有一个切换JButton,单击它时,可以在别处安装或卸载某些侦听器(但我认为这有点无关紧要,因为它可能只是任何你不想在一行中执行多次的代码,因此,切换,你点击它一次,它会做一些事情,你再点击它,它会撤销一些事情或其他事情)。我的问题是,我有几个这个按钮的实例(或者更具体地说,它的父JPanel的几个实例)。这个限制不是我做的,我无法阻止。基本上,我的情况是,用户可以连续多次“打开”按钮,不用说,这会把我搞砸 按钮本身并不是一次对用户全部可见,在任何给定的时间只能看到一个。我尝试使用组件侦听器,

我有一个切换JButton,单击它时,可以在别处安装或卸载某些侦听器(但我认为这有点无关紧要,因为它可能只是任何你不想在一行中执行多次的代码,因此,切换,你点击它一次,它会做一些事情,你再点击它,它会撤销一些事情或其他事情)。我的问题是,我有几个这个按钮的实例(或者更具体地说,它的父JPanel的几个实例)。这个限制不是我做的,我无法阻止。基本上,我的情况是,用户可以连续多次“打开”按钮,不用说,这会把我搞砸

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

我试着把这个按钮做成一个单独的按钮,但那只是产生了一种奇怪的效果,只在最后一个面板上显示这个按钮

我有点不知所措。我想要的行为很简单:这个切换按钮的多个实例同步它们所选的状态。想法

另外,我想我可以构建一个实例列表,并在单击其中一个实例时更新所有其他实例的状态,但我想知道是否有更简单的方法


谢谢

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

这里没有大的显示。我使用自己的建议t解决了我的问题也就是说,我只是保留了一个按钮所有实例的列表,并设置了它们在它们共享的操作中被单击时的状态。

它们确实共享相同的操作,这是问题的一部分。哦,我想我可以设置和检查一些静态变量,这将解决我的问题,但就用户而言,每个都是此按钮的状态似乎是同一个按钮,因此切换状态需要同步,否则它看起来就像是糟糕的GUI设计(通常是这样,但这是我无法更改的)。@brock:
“它们确实共享相同的操作,这是问题的一部分。”
——如果代码在共享动作或模型的情况下仍然无法工作,那么为了获得更好的帮助,如果您能够创建并发布or,我们都会得到最好的服务。要么我没有正确解释自己,要么您误解了我的问题,要么两者都有。如果我在这里完全错了,请原谅(我根本不是摇摆大师),但我不能使用ButtonModel,因为我需要使用JButton,所以当切换时,它看起来就像一个保持按下状态的常规按钮,而不是复选框或单选按钮。我所需要做的就是同步这一按钮的所有实例的状态……我是根据我自己的建议来做的。@brock:谢谢更新。我个人的意见是,省略的错误是您没有按要求发布,因为没有小的工作示例,我们很难完全理解问题是什么。我仍然无法判断共享操作是否有效,并且担心您当前的解决方案可能很脆弱,但是如果没有更多的代码,很难判断。