Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java项目-如何冻结框架_Java - Fatal编程技术网

Java项目-如何冻结框架

Java项目-如何冻结框架,java,Java,你好 我正在用Java做一个游戏。我的菜单按钮包括新游戏、高分、关于和退出。 但在用户进入主游戏之前,他需要先键入自己的名字。我使用的代码如下: private void btnNewGameMouseClicked(java.awt.event.MouseEvent evt) { Player p1 = new Player(); this.setVisible(false); // I must replace this code p1.setV

你好

我正在用Java做一个游戏。我的菜单按钮包括新游戏、高分、关于和退出。 但在用户进入主游戏之前,他需要先键入自己的名字。我使用的代码如下:

  private void btnNewGameMouseClicked(java.awt.event.MouseEvent evt) {
       Player p1 = new Player();
       this.setVisible(false); // I must replace this code
       p1.setVisible(true);
   }
我的问题是,我不想隐藏主菜单。我希望它冻结,并且在询问玩家姓名时无法访问

我的主菜单框比播放器框大。。当然,我可以只删除代码
this.setVisible(false)
,但问题是单击时我仍然可以访问主菜单。。。我希望主菜单冻结,当播放器框架弹出时无法访问。。(见下图)请帮帮我。多谢各位


您要做的是使播放器框架成为一个模式对话框。您可能希望使它成为JFrame的子类,而不是您正在使用的任何东西,并使用其
setModal
方法或使用
JDialog
的构造函数之一将其设置为模态。例如:

public Player(JFrame owner) {
  super(owner, true); // makes the dialog modal
  // ...
}
然后可以从主框架创建对话框,如:

Player p1 = new Player(this);

当您调用
p1.setVisible(true)
时,主框架将被阻止且不可点击。

您要做的是使播放器框架成为一个模式对话框。您可能希望使它成为JFrame的子类,而不是您正在使用的任何东西,并使用其
setModal
方法或使用
JDialog
的构造函数之一将其设置为模态。例如:

public Player(JFrame owner) {
  super(owner, true); // makes the dialog modal
  // ...
}
private void btnNewGameMouseClicked(java.awt.event.MouseEvent evt)
{
   Player p1 = new Player();       
   p1.setVisible(true);
   setEnabled(false);
}

/* 
setEnabled(boolean b) (java.​awt.​Component)
Enables or disables this component, depending on the value of the parameter b. An enabled component can respond to user input and generate events. Components are enabled initially bydefault.enter code here
*/
然后可以从主框架创建对话框,如:

Player p1 = new Player(this);

当您调用
p1.setVisible(true)
时,主框架将被阻止且不可访问。

那么您就有一个bug了。但是如果没有代码,我们就猜不出它是什么。我能让主屏幕变暗以突出显示播放器对话框吗?thanks@Hovercraft全是鳗鱼它已经起作用了。。如何使主屏幕颜色变暗以突出显示“播放机”对话框?谢谢你,当你有虫子的时候。但是如果没有代码,我们就猜不出它是什么。我能让主屏幕变暗以突出显示播放器对话框吗?thanks@Hovercraft全是鳗鱼它已经起作用了。。如何使主屏幕颜色变暗以突出显示“播放机”对话框?非常感谢。
private void btnNewGameMouseClicked(java.awt.event.MouseEvent evt)
{
   Player p1 = new Player();       
   p1.setVisible(true);
   setEnabled(false);
}

/* 
setEnabled(boolean b) (java.​awt.​Component)
Enables or disables this component, depending on the value of the parameter b. An enabled component can respond to user input and generate events. Components are enabled initially bydefault.enter code here
*/