首先,我为双重帖子道歉(我无法删除旧帖子)...... 实际上,我认为我的问题已经解决了,但它不是......
我的软件是用Java开发的。用户(将是7-9岁的孩子)必须在JtextPane中写入文本。当没有时间让他写作时,会出现一个弹出窗口,上面写着"没有时间了,是时候写另一个故事"
唯一的问题是:如果用户在弹出消息时正在写入,则弹出窗口消失,因为空格键或"输入"验证消息。 当你写一篇文章时,你经常按下那些键......:/
无论如何,我可以禁用这个功能吗?只有当用户点击" OK"并且允许消息消失。 ? 我尝试使用听众,但它没有工作。
我用它来创建MessageDialog:
JOptionPane.showMessageDialog(null,
new UTIL_LireFichierTXT().getText(MessageTempsImparti)
,new UTIL_LireFichierTXT().getText(MessageAttention),JOptionPane.WARNING_MESSAGE);
我是一名实习生,而我的老板告诉我"你必须出示一个弹出窗口,所以我无论如何都不能做... 你有什么想法帮助我吗? 谢谢你的阅读。
答案 0 :(得分:4)
做你想做的事并不是一个好主意,但我有一个解决方案。您可以在显示对话框时禁用所有键事件。这是一个样本。
AWTEventListener myListener = new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent event) {
if (event instanceof KeyEvent) {
((KeyEvent) event).consume();
}
}
};
Toolkit.getDefaultToolkit().addAWTEventListener(myListener, AWTEvent.KEY_EVENT_MASK);
JOptionPane.showMessageDialog(null, "You have a message!");
Toolkit.getDefaultToolkit().removeAWTEventListener(myListener);
请仅在您的老板真正需要时使用此解决方案。我希望你的文本组件不可编辑,并将警告信息显示为ovelay(你可以使用JLayeredPane)。