用于关闭窗口的Java Swing非活动按钮
我正在尝试使用swing创建gui。我有一个主框架,我希望它只显示右上角的x按钮。我也想使这个按钮不可能按下,如果某些条件得到满足。我在谷歌和java的网站上做了一些搜索,但我找不到任何与这两项任务相关的功能。欢迎使用任何小代码或教程或API的链接用于关闭窗口的Java Swing非活动按钮,java,api,swing,jframe,Java,Api,Swing,Jframe,我正在尝试使用swing创建gui。我有一个主框架,我希望它只显示右上角的x按钮。我也想使这个按钮不可能按下,如果某些条件得到满足。我在谷歌和java的网站上做了一些搜索,但我找不到任何与这两项任务相关的功能。欢迎使用任何小代码或教程或API的链接 我希望按钮在那里。我不希望窗口关闭(我可以使用setDefaultCloseOperation来关闭),而且我正在尝试找到一种方法,使按钮看起来变灰,并且不允许它在我单击按钮时执行被按下的动画。我希望它是灰色的,完全没有响应。可能myFrame.se
我希望按钮在那里。我不希望窗口关闭(我可以使用setDefaultCloseOperation来关闭),而且我正在尝试找到一种方法,使按钮看起来变灰,并且不允许它在我单击按钮时执行被按下的动画。我希望它是灰色的,完全没有响应。可能
myFrame.setresizeable(false)代码>和您可以处理的该按钮的所有事件
编辑:
窗口的装饰来自本机操作系统,然后您有以下四个选项
- 全装饰(JFrame)最小化/最大化/关闭按钮
- 仅关闭按钮JDialog和JFrame#可设置大小(错误)
- 未装饰,然后也缺少最小化/最大化/关闭按钮(a)和工具栏(来自本机操作系统)
- undecorated with(带工具栏)包含with Char X(可以启用一次,也可以根据需要禁用另一次)
可能
myFrame.setresizeable(false)代码>和您可以处理的该按钮的所有事件
编辑:
窗口的装饰来自本机操作系统,然后您有以下四个选项
- 全装饰(JFrame)最小化/最大化/关闭按钮
- 仅关闭按钮JDialog和JFrame#可设置大小(错误)
- 未装饰,然后也缺少最小化/最大化/关闭按钮(a)和工具栏(来自本机操作系统)
- undecorated with(带工具栏)包含with Char X(可以启用一次,也可以根据需要禁用另一次)
您可以指定在框架上按下“关闭”按钮时要执行的操作。如果您不想让它做任何事情,那么:
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
您可以指定在框架上按下“关闭”按钮时要执行的操作。如果您不想让它做任何事情,那么:
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
你没有搜索太远。看见将关闭时的DO\u NOTHING\u传递给此方法将禁止通过默认的关闭按钮关闭帧。您没有搜索太远。看见将关闭时的DO\u NOTHING\u传递给此方法将禁止通过默认的关闭按钮关闭帧。您可以使用JDialog,因为它只有X按钮
使用dialog.setDefaultCloseOperation(JDialog.DO\u NOTHING\u ON\u CLOSE)代码>
您可以禁用关闭按钮
使用dialog.setDefaultCloseOperation(JDialog.DISPOSE\u ON\u CLOSE)代码>
您可以启用关闭按钮您可以使用JDialog,因为它只有X按钮
使用dialog.setDefaultCloseOperation(JDialog.DO\u NOTHING\u ON\u CLOSE)代码>
您可以禁用关闭按钮
使用dialog.setDefaultCloseOperation(JDialog.DISPOSE\u ON\u CLOSE)代码>
您可以启用关闭按钮您所说的“无法按下”是什么意思?如果鼠标靠近它,你想强迫它离开吗?你想如何阻止用户按下它?@Joachim Sauer我想他希望它被禁用。我希望它只是在那里,但以灰度显示,如果你点击它,就好像什么都没点击一样。它就是没有反应。我猜它是不活动的。@Eternal_Light:也读一下:查看我对real Chooses的编辑“不可能按下”是什么意思?如果鼠标靠近它,你想强迫它离开吗?你想如何阻止用户按下它?@Joachim Sauer我想他希望它被禁用。我希望它只是在那里,但以灰度显示,如果你点击它,就好像什么都没点击一样。它就是没有反应。我想它是不活动的。@Eternal_Light:也读一下:看我对real Chooses的编辑哦,是的,那很好。有没有一个简单的方法让我也把它变成灰色,当我点击它的时候,不显示里面被按下的动画?我认为这是不可能的,或者至少是不直接的。您可以使用setUnderatted()删除所有标题栏内容,但这可能对您没有好处。也许您还需要查看您的用例,为什么您需要一个不可关闭的窗口?如果用户希望关闭它,应该使用什么方法?这似乎不是一个好的UI设计…一个更标准的UI设计方法的例子是:当满足某些条件时,如果用户按下关闭按钮,则会显示一条消息(对话框或类似的消息),通知他们在满足这些条件之前,无法关闭窗口。(如果他们愿意,可能会给他们一个关闭它的选项)我大部分时间都在尝试。我想在如下情况下使用它:jframe显示一个进度条,只要进度条没有满,我希望x按钮变成灰色且不可用,并保持这种状态,直到进度条填满为止。发送一条消息并要求用户按下另一个按钮来摆脱它,如果您只需禁用该按钮,那就不太好了。用户将理解消息将告诉他们的相同内容。您也可以使用JWindow,在这种情况下,默认情况下它没有这些按钮…哦,是的,这很好。有没有一个简单的方法让我也把它变成灰色,当我点击它的时候,不显示里面被按下的动画?我认为这是不可能的,或者至少是不直接的。您可以使用setUnderatted()删除所有标题栏内容,但这可能对您没有好处。也许您还需要查看您的用例,为什么您需要一个不可关闭的窗口?如果用户希望关闭它,应该使用什么方法?看起来不是这样,李