首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在无法显示的字符被写入JTextArea之前捕获它们?

有没有办法在无法显示的字符被写入JTextArea之前捕获它们?
EN

Stack Overflow用户
提问于 2010-01-25 19:08:41
回答 2查看 212关注 0票数 3

我改变了我的keyTyped行为,默认将字符输出到JTextArea,但是当我复制和粘贴时,它会产生一个不可显示的字符。

我需要这个在多个操作系统上工作,所以使用案例22:不工作,因为这不适用于Mac的。sun是否有一个案例来捕获粘贴/复制的自由操作系统的限制,或者有人知道一个好的解决办法?

EN

Stack Overflow用户

发布于 2010-01-25 19:45:55

您可能想要调查一下document filters

添加文档筛选器将允许您修改(甚至阻止)添加到JTextArea文档的字符串。如果您的文本区使用AbstractDocument的某个子类作为文档实现,则可以添加自定义文档筛选器。如下所示:

代码语言:javascript
运行
复制
AbstractDocument doc = (AbstractDocument)textArea.getDocument(); 
doc.setDocumentFilter( new DocumentFilter() {
  public void insertString( FilterBypass fb, int offset, String string,
      AttributeSet attr ) throws BadLocationException
  {
    // Test string here and modify if required, then call super.insertString()
    // (usually called on a "paste")
  }

  public void replace( FilterBypass fb, int offset, int length,
      String text, AttributeSet attrs ) throws BadLocationException
  {
    // Test string here and modify if required, then call super.replace()
    // (usually called when characters are typed)
  }
});

(在您的“真实”实现中,您可能想要很好地测试AbstractDocument是否正在实际使用,而不是我所做的强制转换)。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2131786

复制
相关文章

相似问题

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