gpt4 book ai didi

java - 等待来自 JOptionPane 等用户的消息结果

转载 作者:行者123 更新时间:2023-11-30 09:15:24 26 4
gpt4 key购买 nike

我希望我的自定义消息类的行为方式与以下代码段中的 JOptionPane 相同:

int reply = JOptionPane.showConfirmDialog(
null,
"Is the weather beautifull?",
"Question",
JOptionPane.YES_NO_OPTION
);
if (reply == JOptionPane.YES_OPTION) {
// do something in response to yes...
} else {
// do something in response to no...
}

所以我真正想要的是,我创建自己的消息对象,显示它并在用户按下伪代码时使用react,如下所示:

show my question message;
wait for user button press without blocking UI thread;
do something depending on which button the user pressed;

我尝试了所有的事情让我的消息框像 JOptionPane 一样使用 FuturesWait/Notify 等,但我总是以阻止我的 UI 线程。

JOptionPane 这样做的秘诀是什么? :)

最佳答案

参见 docs :

A Dialog can be modal. When a modal Dialog is visible, it blocks user input to all other windows in the program. JOptionPane creates JDialogs that are modal. To create a non-modal Dialog, you must use the JDialog class directly.

参见 modal window :

...requires users to interact with it before they can return to operating the parent application

关于实现,我猜想 swing 会阻塞 EDT 并为模态对话框创建另一个线程。

关于java - 等待来自 JOptionPane 等用户的消息结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com