首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用空格键并在JOPTIONPANE中输入键

禁用空格键并在JOPTIONPANE中输入键
EN

Stack Overflow用户
提问于 2014-05-12 14:00:32
回答 1查看 1.2K关注 0票数 1

首先,我为我的双发邮件道歉(我不能删除我的旧邮件).实际上,我以为我的问题已经解决了,但这不是.

我用Java开发的软件有问题。用户(可能是7-9岁的孩子)必须用JtextPane写一篇文章。当他没有时间去写的时候,一个弹出式的出现说:“没有时间了,是时候写另一个故事了”。

唯一的问题是:如果当消息弹出时用户正在写,弹出就会消失,因为空格键或"enter“会验证消息。当你写短信的时候,你经常按那个键.:/

有什么可以让我禁用这个字体的吗?只有当用户单击"OK“时,才允许消息消失?我试着用侦听器,但没有用。

我用它来创建MessageDialog:

代码语言:javascript
复制
JOptionPane.showMessageDialog(null,
                new UTIL_LireFichierTXT().getText(MessageTempsImparti)
                ,new UTIL_LireFichierTXT().getText(MessageAttention),JOptionPane.WARNING_MESSAGE);

我是一名实习生,我的老板告诉我“你必须表现出来”,所以我无论如何也做不到.你有办法帮我吗?感谢您的阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-12 15:07:23

做你想做的事不是个好主意,但我有个解决办法。当对话框显示时,您可以简单地禁用所有关键事件。这是一个样本。

代码语言:javascript
复制
    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);

如果你的老板真的想要的话,请使用这个解决方案。我希望使您的文本组件不可编辑,并将警告消息显示为面向它(为此您可以使用JLayeredPane )。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23611092

复制
相关文章

相似问题

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