首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我正在使用javaFX 8,我想要一种在子窗体仍处于打开状态时阻止用户访问父窗体的方法

在JavaFX 8中,你可以使用模态对话框来实现在子窗体仍处于打开状态时阻止用户访问父窗体的效果。模态对话框是一种特殊类型的窗体,它会阻止用户与其他窗体进行交互,直到该对话框被关闭。

以下是一种实现方法:

  1. 首先,创建一个父窗体和一个子窗体。你可以使用JavaFX的Stage类来创建窗体。
代码语言:java
复制
Stage primaryStage = new Stage();
primaryStage.setTitle("父窗体");

Stage childStage = new Stage();
childStage.setTitle("子窗体");
  1. 接下来,将子窗体设置为模态对话框。你可以使用initModality方法来设置对话框的模态性。
代码语言:java
复制
childStage.initModality(Modality.APPLICATION_MODAL);
  1. 然后,显示父窗体和子窗体。
代码语言:java
复制
primaryStage.show();
childStage.showAndWait();

在这个例子中,调用showAndWait方法来显示子窗体,它会阻塞代码的执行,直到子窗体被关闭。

完整的示例代码如下:

代码语言:java
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("父窗体");

        Stage childStage = new Stage();
        childStage.setTitle("子窗体");
        childStage.initModality(Modality.APPLICATION_MODAL);

        Button closeButton = new Button("关闭子窗体");
        closeButton.setOnAction(event -> childStage.close());

        VBox layout = new VBox(10);
        layout.getChildren().addAll(closeButton);
        Scene scene = new Scene(layout, 200, 200);
        childStage.setScene(scene);

        primaryStage.show();
        childStage.showAndWait();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

这样,当子窗体处于打开状态时,用户将无法访问父窗体,直到子窗体被关闭。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法提供相关链接。但你可以通过访问腾讯云的官方网站,了解他们提供的云计算产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【愚公系列】2023年11月 Winform控件专题 Form控件详解

基本使用步骤如下:打开Winform窗体,在窗体上添加一个控件选择控件,打开其属性窗口,AutoSize属性中选择True或False根据需要在代码中对控件内容进行修改运行程序,查看控件大小变化/...WindowState属性有三个可用值:Normal:窗口处于普通状态,即既不是最小化也不是最大化状态。Minimized:窗口处于最小化状态,即窗口被最小化到任务栏中。...添加窗体方式有两种,一种代码中创建一个新窗体,另一种是在窗体设计器中创建一个窗体控件。...以下是使用MainMenuStrip基本步骤:1.设计窗体,将MainMenuStrip控件拖放到窗体上。2.MainMenuStrip中添加菜单和菜单。...MDI应用程序:使用Form可以创建MDI窗体,作为多文档界面应用程序主窗口。模式窗口:Form可作为模式窗口使用,即在窗体弹出阻止用户与其它窗体交互。

2.3K21

C#学习笔记—— 常用控件说明及其属性、事件

所谓容器控件指的是这样一种情况:往往控件之中还有一个控件,例如最典型就是窗体控件中会包含很多控件,像标签控件、文本框等。这时称包含控件控件为容器控件或控件,而控件称为控件。...当某进程运行时间较长,如果没有视觉提示,用户可能会认为应用程序不响应,通过应用程序中使用进度条,就可以告诉用户应用程序正在执行冗长任务且应用程序仍在响应。...MDI程序中应用程序窗口称为窗口,应用程序内部窗口称为窗口。虽然 MDI应用程序可以具有多个子窗口, 但是每个子窗口却只能有一个窗口。此外,处于活动状态窗口最大数目是 1。...与MDI应用程序设计有关方法中,一般只使用窗体LayoutMdi方法,该方法调用格式如下: MDI窗体名.LayoutMdi(Value); 该方法用来MDI窗体中排列MDI窗体,以便导航和操作...常用 MDI 窗体事MdiChildActivate,当激活或关闭一个 MDI窗体将发生该事件。 3.菜单合并 窗体窗体可以使用不同菜单,这些菜单会在选择窗体时候合并。

9.7K20
  • C#记事本项目开发,一个可以实现批量操作记事本!【附源码】

    C#记事本开发需要我们定义两个窗体,也就是一个承载所有记事本窗体,一个具有记事本基本功能窗体。 . 记事本子窗体 所以我们首先来聊一下具有记事本基本功能窗体开发。...C#窗体应用中,我们可以直接对界面进行控件布局,不需要使用代码定义控件,在这一点上C#窗体应用开发是很不错。..., "警告"); } } 打开文件控件函数: 进行文件打开操作,我们需要对所打开文件进行筛选,只要求打开txt格式文本文件即可。...主控页面窗体 接下来就是承载记事本编辑窗口窗体了。 窗体中需要包括控件有记事本新建、关闭、全部关闭、退出等。...); } 关闭窗体 关闭窗体,我们所关闭是当前处于最前方活跃窗体

    1.9K10

    【C#】分享一个弹出容器层,像右键菜单那样召即来挥则去

    新增DrawSizeGrip方法就是绘制方法,是protected virtual,所以如果你看不上这个,可以子类重写该方法画你自己满意(题外,画这个还参考了VS2010效果,不过是相反...打开与Show一致,非模式化打开(Modal为false,通过Show打开与Hide一致,这也是原版Form逻辑,只不过原版Form还会根据FormBorderStyle,但本类已将该属性固化...当时了解到这方案时候真挺开心,正是想要效果,感觉这下好了,不用瞎费劲自己造了。...这样带来问题是某些情况下调用体验不好(体验这种事当然不是用户才有的专利,俺们码农也是人,也要讲体验说),比如弹出控件是让用户输入一些东西,完了用户点击某个按钮什么返回原窗体,然后窗体获取用户刚刚输入...ShowDialog弹出收到WM_SHOWWINDOW前,Owner会被Disable //故需收到该消息后立即Enable它,不然Owner窗体和本窗体都将处于无响应状态

    2.8K20

    Excel编程周末速成班第21课:一个用户窗体示例

    与其输入后检查数据(下一节中将对某些字段进行操作),不如直接阻止输入不正确数据有时更为有效。 键盘输入到达控件之前对其进行检查方法使用KeyDown事件。...你可能已经注意到“完成”和“下一步”按钮共享一个任务,该任务正在工作表中输入经过验证数据。每当需要在不止一种情况下执行任务,程序员都会将此视为将所需代码放入一个过程中机会。...当然,单击“下一步”按钮,这是必需单击“取消”或“完成”按钮,这也是必需。即使使用Hide方法隐藏了该窗体,它在下次显示仍将所有数据保留在其控件中。因此,需要清除控件。...3.使用Offset方法以原始区域中行数获得区域偏移。此新区域比原始区域低一行,并且第一个空行中包含六个单元格。 4.使用Cells属性访问此区域内单个单元格以插入数据。...编辑器中打开用户窗体按F5来测试工程,还可以编写一个使用Show方法显示窗体宏。

    6.1K10

    使用C#开发数据库应用程序

    鼠标双击事件,当用户双击窗体发生 MouseMove 鼠标移动事件,当鼠标移过窗体发生 KeyDown 键盘按下事件,首次按下某个键发生 KeyUp 键盘释放事件,释放键发生 例如...)创建MDI【设置窗体:将窗体IsMDIContainer属性设为true。...设置窗体调用打开窗体Show()方法前,代码中将窗体MdiParent属性设为this】 例如: //用户单击菜单项,出现创建学员用户窗口 private void tsmiNewStudent_Click...=this; addStudentForm.Show();//显示创建学员用户窗体 } (2)为窗体添加窗体列表【窗体中添加一个菜单Name(tsmiWindows),添加一个"窗口"菜单项...(1)不使用SqlCommandBuilder直接调用Update()方法 (2)利用DataGridView显示数据集中,没有为它列设置DataPropertyName属性 8-4:综合实例

    5.9K30

    C# 窗体常用API函数 应用程序窗体查找

    (即EnumWindows中lParam) 下面用一个例子对该方法说明 程序中要实现一个功能:可以在当前打开窗体中找到目标窗体,并在需要将其激活,置为前台窗体 using System;using...返回值:如果函数成功,返回值为具有指定类名和窗口名窗口句柄。如果函数失败,返回值为NULL。总之,这个函数查找窗口,从排在给定窗口后面的下一个窗口开始。查找不区分大小写。...() 但是使用方法要特别注意,当在其他线程中对当前线程窗体进行激活使用方法是没有作用。...想在找到目标窗体前提下,让目标窗体和其它窗体同时出现在桌面上,同时要保证只有目标窗体处于激活状态,也就是说只有目标窗体可以接受到模拟按键消息。...终于找到了,可以通过SetForwardWindow(int handle)方法将目标窗体激活并处于最前窗体。同时利用另外一个API函数SetWindowPos来设置其他窗体,使其可以同处桌面。

    4K70

    软件易用性测试_易用性测试包含界面测试吗

    如果某些事务处理不能提供进度等数据,那么至少要给出提示信息如“正在 处理,请稍等…”。 最好是提供合适动画,让用户明白软件正在干活、没有死机。 6. 灵活性 状态跳转。...b:对于含有按钮界面一般不应该支持缩放,即右上角只有关闭功能。 c:通常窗体支持缩放窗体没有必要缩放。 3. 控件准则 1)窗口通用准则 a:全部窗口可以通过相关输入或者菜单命令打开。...d:多窗口系统中,有些界面要求必须保持最顶层,避免用户打开多个窗口,不停 切换甚至最小化其他窗口 来显示该窗口下拉式菜单和鼠标操作。...I:对于有数据类型要求输入框,应阻止用户输入非法数据,且给出提示信息。 j:当用户作出选择可能性只有两个,可以采用单选框。 k:当选择可能再多一些,可以选择复选框。...帮助设施 1)一般准则 a:系统应该提供详尽而可靠帮助文档,在用户使用产生迷惑,可以自己寻求解决 方法。 b:通常帮助设施方式有:需求文档、README、在线咨询、用户手册等。

    1.3K50

    基于iframe跨域与更新窗体地址栏解决方案

    访问到内部某个页面后,希望窗体地址栏跟随窗体内部src,同时更新窗体地址栏,再刷新页面可以保持在当前访问页面,同时可以分享链接。...管理平台接入运维平台页面是这样设计路由:给每个模块一个地址,以其中一个模块----虚拟机模块为例,虚拟机模块下包括虚拟机管理页面、虚拟机创建页面和虚拟机详情页面。...而且想把这个详情页面的链接分享给其他同事看看,怎么打开却是虚拟机管理页面呢?想用浏览器回退、前进按钮,怎么和我预想不一样呢?...然后每次ifrmae内部src变化时,便会调用onLoad()。内部window.locationhash值变化后,获取窗体href值,再对窗体地址栏做修改。...以虚拟机模块代码为例,由于从虚拟机页面还有可能跳转到母机模块,这里也要考虑到: 图片1.png 如果是获取到窗体src后,以window.location.href = xxx;方式来修改窗体

    14.4K1350

    写字板(Windows程序设计)

    状态栏中显示学生学号、姓名等信息,在窗口标题中显示当前正在编辑文件名 (可选)其他你觉得实用功能:如支持word等 (可选)将其改造成MDI程序:窗口中包含新建、窗口、帮助等菜单;在运行时,窗口菜单会与其合并...,合理设置各菜单项MergeIndex/MergeAction属性,使其符合我们使用习惯;编程允许用户调整各自窗口间布局关系(平铺、层叠等)等 先看效果 解决方法 richtextbox...else OpenWord(saveName); Text = saveName; } public void 窗体打开...,注意多用DropDownOpening,DropDownItemClicked等操作代替Click,使代码更加精简高效   这是一个MDI调整窗体使用DropDownItemClicked例子...,是为了让一个窗体拥有许多个子窗体,进行更加简单有效操作 窗体new窗体就行,记得一系列基本操作,你也可以通过生成函数和属性进行快速高效设置 private void 新建ToolStripMenuItem_Click

    1.1K10

    作为window对象属性元素 多窗口和窗体

    窗口和其他窗口并不是没有完全关系。一个窗口或标签页中脚本可以打开窗口或者标签页。当一个脚本这样做,多个窗口可以相互操作 iframe 已经处于半废弃inframe标签。...(或者递归打开窗口),脚本才能通过名字指定存在窗口,或者如果是一个窗口内嵌另一个窗口里窗体,那么它们脚本之间可以相互导航。...使用 _top(顶级祖先窗口) 和 _parent(直接级窗口) 来获取上下文。 窗口名字 窗口名字,运行open()方法引用已存在窗口。...其closed值为true,并且document值为null,其方法也不能使用 窗体之间关系 window对象方法open()可以打开并创建一个新window对象(即创建一个新窗口)并且该窗口是具有...事实上,全局对象会在窗口或窗体载入新内容被替换,即window对象实际不是全局对象,是一个代理,即windowProxy ps 需要注意一点多个标签或者窗体时候,每个窗体仅仅为一个线程,线程之间使用是一个浏览器定义好

    2.1K50

    VB.NET窗体继承「建议收藏」

    VB.NET和C#都是完全面向对象语言,而面向对象三大特性是封装、继承、多态,出了代码、功能上来体现,设计窗体是不是也可以用到呢?答案当然是YES!...如果一个程序中有多个界面相似,就可以考虑通过继承来实现,先建立一个窗体,然后让窗体来继承它,相同代码就可以写在窗体中,各自功能分别写在不同窗体中,实现想要功能。...(建好后需要重新生成解决方案) 2.选择项目菜单下添加新项,弹出窗体中做如下选择: 3.选择“添加”按钮,弹出窗体中选择要继承窗体,点确定即可。...4.继承来充值窗体: 基本上已经完成了,但是会发现继承来窗体控件都是锁定,如果想要通过这些控件添加一些新功能,就需要将窗体控件Modifiers属性设置为Public,这样就可以了...当我们做了很多重复事情,就应该停下来思考一下,有没有更好方法。思想是行动先导,首先要思考,然后再行动。

    81210

    emWin 2天速成实例教程000_如何快速入门ucGUIemWin

    /Window控件作为窗体,这里我们添加一个Framewin控件做窗体: 备注:如果需要一个纯色背景桌面怎么办?...那就放一个Window做窗体(保存为单独C文件),其他Framewin/Window都作为它窗体。 备注:一定要记住emWin窗体/控件概念重要性(前面有说)!...,然后编译工程: (8)运行: (10)到目前为止,Framewin窗体Button和Checkbox控件还是完全独立,也就是除了能点击和显示以外,还没有任何功能,那么我们怎么为这两个控件添加功能程序呢...比如我们想通过Button控件去控制Checkbox控件选择状态,那么我们可以通过修改FramewinDLG.c文件程序实现,WM_NOTIFY_PARENT消息中(操作屏幕程序跑到这里)加入以下程序...是设置emWin为GBK编码C文件: (2)设置emWin为GBK编码: (3)修改中文显示: 备注:使用GBK编码Code::Blocks需要做以下设置,否则保存C文件将自动被改为UTF8编码。

    1.6K20

    脚本语言知识总结.

    是用open方法打开当前窗口那个窗口 ①:父子窗体之间通讯 页面内嵌入一个iframe,iframe中提供一个输入项,输入后,iframe外面窗口中显示内容 ?...,标签内部文本内容成为文本节点 注意:属性节点,它不属于DOM树形结构,不属于任何节点节点,也不属于任何节点节点 ,属性节点依附于元素节点上 一种附加节点 【上面代码 产生6个元素节点,5个属性节点...默认事件阻止和传播阻止 使用场景极为常见,超链接用户点击后,取消了不发生跳转。..., 该方法IE 不支持 ,IE中使用 returnValue 提供stopPropagation()用与阻止事件传播,该方法IE不支持,IE中 cancelBubble 五、Ajax编程入门 1....是java类库 ,支持javabean map list array转换json格式字符串, 支持将json字符串转换javabean对象(反过来只支持这一种使用很少) 使用JSON-lib必须导入至少

    5K130

    【C#】分享带等待窗体任务执行器一枚

    替代原来设置DialogResult做法 WaitFormFormClosing事件由注册该事件改为重写OnFormClosing方法,对阻止窗体关闭条件增加了Visible,即当窗体处于可见...先解释一下所谓【带等待窗体任务执行器】是个什么鬼,就是可以用该类执行任意耗时方法(下文将把被执行方法称为任务或任务方法),执行期间会显示一个模式等待窗体,让用户知道任务正在得到执行,程序并没有卡死...弹出模式窗体,让用户知道任务正在执行同时阻止用户进行其他操作。...事件,要求用户点击取消按钮和关闭窗体触发,但编写者只在其中一种操作触发或根本不触发那也没办法,一个道理,过分灵活不是好事。...BackgroundWorker之所以采用Cancelled方式,是因为它已经通过另一种方式阻止调用者获得错误结果,就是当e.Cancelled为true访问e.Result会抛异常,等于理念是一样

    1.7K30

    Azure 机器学习 - 使用无代码 AutoML 训练分类模型

    资源组保存 Azure 解决方案相关资源。 需要“参与者”或“所有者”角色才能使用现有资源组。 有关访问权限详细信息,请参阅管理对 Azure 机器学习工作区访问权限。...有关在 Azure 中创建工作区其他方法,请参阅门户中或使用 Python SDK (v2) 管理 Azure 机器学习工作区。...“确认详细信息”窗体上,确认信息与先前“基本信息”、“数据存储和文件选择”和“设置和预览”窗体上填充内容匹配。 选择“创建”以完成数据集创建。 当数据集出现在列表中,则选择它。...当试验准备开始,将打开“作业详细信息”屏幕并且会在顶部显示“作业状态”。 此状态随着试验进行而更新。 通知也会显示工作室右上角,以告知你试验状态。...九、清理资源 部署文件比数据文件和试验文件更大,因此它们存储成本也更大。 仅当你想要最大程度地降低帐户成本,或者想要保留工作区和试验文件,才删除部署文件。

    22220

    Excel实战技巧63: 制作具有数据导航功能用户窗体

    这个用户窗体需要6个事件:Initialize(当用户窗体打开)、QueryClose(当用户窗体关闭),以及每个命令按钮单击事件。...需要使用事件代码将记录集的当前记录显示文本框中、以及阻止用户错误操作,例如当处于第一条记录单击命令按钮cmdPrev(<)。...你只需确保使用了正确Tag属性,以免禁用了你不想禁用控件。 现在,创建记录集,确保使用有用信息来填充文本框。 无论用户窗体什么时候打开都会触发Initialize事件,此时适合创建记录集。...其中一种方法Excel中创建外部数据表(数据>获取外部数据),然后读取Connection和CommandText属性。接着,做一些修改,例如从连接字符串中移除ODBC以及使用变量代替数据库信息。...当关闭用户窗体,将触发QueryClose事件。如果用户窗体打开,就不需要记录集,因此该事件中要将其释放并清空内存。

    3.1K20

    测试思想-系统测试 界面测试总结

    可以说:界面遵循规范化程度越高,则易用性相应就越好。 3.合理性 屏幕对角线相交位置是用户直视地方,正上方四分之一处为易吸引用户注意力位置,放置窗体要注意利用这两个位置。...菜单和工具条要有清楚界限;菜单要求凸出显示,这样移走工具条仍有立体感。 13. 菜单和状态条中通常使用5号字体。工具条一般比菜单要宽,但不要宽太多,否则看起来很不协调。 14....窗体或主窗体中心位置应该在对角线焦点(附近)。 5. 窗体位置应该在主窗体左上角或正中。 6. 多个子窗体弹出应该依次向右下方偏移,以显示出窗体标题为宜。 7....如果窗体支持最小化和最大化或放大窗体控件也要随着窗体而缩放;切忌只放大窗体而忽略控件缩放。 8. 对于含有按钮界面一般不应该支持缩放,即右上角只有关闭功能。 9....通常窗体支持缩放窗体没有必要缩放。 10. 如果能给用户提供自定义界面风格则更好,由用户自己选择颜色、字体等。 5.数据准确性 1.

    2.1K20

    BringWindowToTop(), SetForegroundWindow(), SetActiveWindow()「建议收藏」

    若函数调用失败,则返回值为NULL 备注:SetActiveWindow函数激活一个窗体,但当应用程序处于后台。将不激活指定窗体。当应用程序激活窗体处于前台,则窗体将被放到前台 2....当应用程序要显示关键错误或须要用户马上注意信息。应仅仅能调用SetForegroundWindow函数。 返回值:假设窗体设入了前台。返回值为非零;假设窗体未被设入前台。返回值为零。...备注:前台窗体是z序顶部窗体,是用户工作窗体一个多任务优先抢占环境中,应让用户控制前台窗体。 3....假设窗体为顶层窗体,则该窗体被激活;假设窗体窗体。则对应顶级窗体被激活。 返回值:假设函数成功,返回值为非零。假设函数失败,返回值为零。...备注:使用BringWindowToTop函数显示出被其它窗体部分或所有遮盖窗体

    45620
    领券