首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java项目-如何冻结框架

Java项目-如何冻结框架
EN

Stack Overflow用户
提问于 2011-01-29 12:09:45
回答 2查看 3.5K关注 0票数 0

日安!

我正在用Java做一个游戏。我的菜单按钮包括新游戏,HighScore,关于和退出。但是在用户可以进入主游戏之前,他需要先输入自己的名字。我按如下方式使用了此代码:

代码语言:javascript
复制
  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),但问题是当单击时我仍然可以访问主菜单...我希望主菜单冻结,并且在播放器画面弹出时无法访问。(见下图)请帮帮我。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-29 12:29:19

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

代码语言:javascript
复制
public Player(JFrame owner) {
  super(owner, true); // makes the dialog modal
  // ...
}

然后您可以从主框架创建对话框,如下所示:

代码语言:javascript
复制
Player p1 = new Player(this);

当您调用p1.setVisible(true)时,主框架将被阻塞且无法单击。

票数 3
EN

Stack Overflow用户

发布于 2013-04-21 12:49:37

代码语言:javascript
复制
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
*/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4835092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档