当前位置: 首页 > 知识库问答 >
问题:

Java Swing:我如何检测按下的键是否会在我的JTextArea中显示输出?

琴琪
2023-03-14

我正在开发一个文本编辑器,我希望能够检测两种不同类型的键事件之间的区别:导致对JTextArea中的文本进行可见更改的键事件(即字母数字字符、enter键、符号),以及不导致可见更改的键事件(方向键、控制键、快捷方式)。我知道我可以用一个非常冗长的switch语句来完成这件事,但是有没有一种不那么冗长的方法来完成下面的操作呢?

private void checkKey (java.awt.event.KeyEvent evt) {
    if (saved && /*some way to check if the text in the box has changed */) {
        editorTitle.setText(currentedit + " (Edited)");
        saved = false;
    }
}

共有1个答案

萧树
2023-03-14

不要使用keylistener。有更好的API来处理这些情况。

如果您想知道文本组件中的数据是否已更改,那么您应该使用DocumentListener。它将在添加或删除文本时生成一个事件。

有关更多信息,请阅读Swing教程中关于如何编写DocumentListener的部分。

快捷方式也是通过使用键绑定在Swing中实现的。

 类似资料:
  • 问题内容: 我是Java的初学者,一直在研究如何检测用户是否按下了某个键(例如箭头键)。显然,有很多方法可以做到这一点,我发现此方法应该对我有用: 问题是我不知道什么是KeyEvent。 当我调用该方法并给我举个例子时,谁能告诉我在括号中加什么? PS:不要把我发送到其他站点,我可能已经看过了,他们只是让我更加困惑… 问题答案: public class KeyEvent extends Inpu

  • 问题内容: 在jasper report中使用不同的字体时,您需要使用font-extensions。 但是,如果字体显示 不正确 ,有没有一种方法可以测试pdf是否支持该字体,以便我可以理解问题是否与我的字体扩展名或我的字体有关? 从jasper报告导出为pdf时,字体呈现不正确是一个常见的问题示例jasperReports PDF不会导出西里尔字母值,如清单1所示,使用字体扩展名并不总是足够的

  • 问题内容: 您能帮我重构此代码: 请同时说明如何检查上/下箭头键。谢谢! 问题答案:

  • 我想将结果发送到。我正在使用AJAX传递我的值。我不确定为什么我数据现在显示在一个按钮中。有谁能帮我解决这个问题吗?如果你们能给我提供如何解决我的问题的代码,那就更好了。提前道谢。 这是我的AJAX代码 编辑问题:我想根据用户当月的输入创建一个excel文件。因此,在用户选择了月份之后,当他们单击按钮时,excel文件将自动下载。我现在的问题是,我现在知道如何将month值传递到页面,在该页面中我

  • 问题内容: 我相信有更好,更合适的方法来做到这一点。但是现在我正在使用UIScreen.main.bounds来检测是否正在处理iPhone X(812高)。顺便说一句,这个特定的应用程序仅适用于风景。这就是我在此功能中要为幻灯片视图创建幻灯片的地方: 但是,如何检查模型? 问题答案: 如果您需要检测设备是否为iPhoneX,请不要使用,这取决于设备的方向。因此,如果用户以纵向模式打开您的应用程序

  • 好的,在这被标记为可能的重复之前,我已经尝试了以下代码: