Java 禁用jToggleButton
嘿,伙计们,我正在制作这个简单的电影票务系统 我的程序流程如下,所有页面都在不同的JFrames中:主菜单>选择日期>选择电影>选择座位>返回主菜单 我正在座位选择器中使用Java 禁用jToggleButton,java,swing,jtogglebutton,Java,Swing,Jtogglebutton,嘿,伙计们,我正在制作这个简单的电影票务系统 我的程序流程如下,所有页面都在不同的JFrames中:主菜单>选择日期>选择电影>选择座位>返回主菜单 我正在座位选择器中使用JToggle。一旦选中,是否可以在整个执行过程中禁用切换按钮?我正在使用JToggleButton.setEnabled(false)但每次我返回菜单并返回座位选择器时,该按钮仍然没有被禁用。我想做的是即使在我返回主菜单后也将其禁用,因此当我返回座位选择器时,我无法再选择此座位 下面是其中的一些代码: private voi
JToggle
。一旦选中,是否可以在整个执行过程中禁用切换按钮?我正在使用JToggleButton.setEnabled(false)代码>但每次我返回菜单并返回座位选择器时,该按钮仍然没有被禁用。我想做的是即使在我返回主菜单后也将其禁用,因此当我返回座位选择器时,我无法再选择此座位
下面是其中的一些代码:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
MainSelection s = new MainSelection();
s.setVisible(true);
if(jToggleButton1.isSelected())
{
jToggleButton1.setEnabled(false);
}
if(jToggleButton2.isSelected())
{
jToggleButton2.setEnabled(false);
}
if(jToggleButton3.isSelected())
{
jToggleButton3.setEnabled(false);
}
}
请检查它好吧,JToggleButton
的“enabled”属性在设置为false
时很可能不会将自身重置为true
。我认为您实际上是在查看另一个JToggleButton
的实例。也许您每次访问“选择座位”GUI时都会重新创建它?
在这种情况下,您要做的是将应用程序数据(其中包含已预订座位等信息)与用户界面分离
我认为,这样做的一个好方法是使用模型视图控制器模式。
让我向您介绍这种设计模式:
- 模型保存您的应用程序数据(例如,可以是
集合
)
- 视图用于显示您的数据(即您的
JToggleButton
)
- 控制器是更新模型的入口点(在您的情况下,这些也是
JToggleButton
)
您可以在那里阅读更多关于它的信息:
基本上,不是每次都创建一个新的“空”视图,而是希望用数据容器(模型)中包含的值加载它。然后,当您单击表示座位的某个JToggleButton
(控制器)时,您不需要直接更改按钮的状态,只需更新您的模型来切换座位的状态(保留或不保留)。然后,每次更新模型时,您的视图将使用可用的新数据进行刷新。就这样
+--------------------------------------+
| +-----------+ |
| | Model <-------+ |
| +-----v-----+ | |
| | | |
| | | |
| +-----v---+---------^----------+ |
| | View | Controller | |
| +---------+--------------------+ |
| |
+---------- Your application ----------+
+--------------------------------------+
| +-----------+ |
||模型