禁用 JTextPane 中的编辑,同时允许可见的光标移动

2024-02-08

我有一个JTextPane它是通过从文件中读取来填充的,然后对数据进行解析和格式化。该用户无权编辑JTextPane,但我希望他们能够使用可见的光标在其中导航。

如果我使用setEditable(false),光标是不可见的,尽管可以通过按住来间接观察不可见光标的位置Shift并使用箭头键选择文本块。

要在禁止编辑时启用可见光标,而不是setEditable(false)我创建了一个假人DocumentFilter这对其毫无作用insertString(), remove(), and replace()方法。但随后我必须换入常规过滤器才能以编程方式填充JTextPane从文件中提取,然后在将控制权返回给用户之前放回虚拟过滤器。

到目前为止,这似乎可行,但是有更简单的解决方案吗?如果我保持原样,是否有任何击键或鼠标活动序列可以以某种方式允许用户编辑文本窗格,因为它在技术上是可编辑的setEditable?


textPane.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent e) {
            textPane.setEditable(true);

        }

        @Override
        public void focusGained(FocusEvent e) {
            textPane.setEditable(false);

        }
    });

又一个肮脏的黑客行为!似乎可以提供您所需要的!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用 JTextPane 中的编辑,同时允许可见的光标移动 的相关文章

随机推荐

  • GIT:如何压缩已推送到远程存储库的多个提交?

    我对 Git 有一个奇怪的设置 基本上我有 client 1 lt gt remote repo gt client 2 客户端 1 本质上是我正在使用的本地存储库 因为我无法在本地计算机上编译 构建该项目 客户端2 是用于构建的远程服务器
  • 每秒将变量增加 X [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我被困在代码的这一部分 我想要一个
  • 获取adb shell命令的结果代码

    我应该如何得到 of adb shell
  • Redis 支持的 ASP.NET SessionState 提供程序 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C# regex 查找并替换重用部分匹配文本

    我需要对长文本字符串进行搜索和替换 我想找到如下所示的所有损坏链接的实例 a href http any url here 7BlocalLink 1369 7D 7C 7CThank 20you 20for 20registering b
  • 如何从 Java 调用 scala 的 Option 构造函数

    我正在开发一个混合 java scala 项目 并且尝试从 Java 调用 scala 对象的方法 该方法需要一个Option Double 作为参数 我认为这会起作用 Double doubleValue new Double 1 0 s
  • Clojure STM 歧义因子

    在 Clojure 中 我们使用 STM 来实现并发 我的问题是STM使用数据的时间点值 这是否会带来歧义 我们如何知道访问了什么值 Clojure 中的 STM 提供 通过ref http clojure org refss and do
  • 命名空间中所需的 WSDL 扩展元素“绑定”

    我的网络服务遇到了很大的问题 当我尝试通过 svcutil 生成文件时 收到以下错误消息 Attempting to download metadata from http srv 13208 GROUPING WS ASMX as mx
  • VS Web Essentials 2012 在导入保存时编译主 LESS

    我正在尝试维护一个全局 less 文件 该文件 imports 应用程序的其余 less 文件 我目前正在 Visual Studio 2012 中使用 Web Essentials 扩展开发这个项目 该扩展在保存时自动生成 css 文件
  • pip:升级包而不升级特定依赖

    我的问题非常类似于this https stackoverflow com questions 2861183 pip upgrade package without upgrading dependencies问题 但它的不同之处在于 如
  • 如何从 SQL 编写存储过程脚本

    我知道有一种方法可以做到这一点 因为我已经见过它了 我只是不记得怎么做了 我想运行一个 SQL 命令 该命令将返回脚本以创建存储过程作为结果 我怎样才能做到这一点 尝试使用 sp helptext 命令 sp helptext yourpr
  • [UICollectionView setCollectionViewLayout:animated:] 访问错误

    我的 UICollectionView 发生了奇怪的崩溃 崩溃的 UICollectionView 嵌入到另一个 UICollectionView 的 UICollectionView 单元格中 我无法重现这个问题 如果内部 UIColle
  • 在 docker 容器中运行 emacs

    我使用的是 Mac 想在我的 docker 容器中运行 emacs 有解决这个问题的首选方法吗 在我的流程中 我陷入困境 因为未设置显示 术语 gt docker exec it c6a7a76db84c bash gt sudo apt
  • 测试php字符串是否为整数

    post用于模拟 POST 我发现 POST int 是一个字符串 我怎样才能知道是否 post int 是一个整数 下面表明它不是整数 编辑 根据文档 http php net manual en function is int php
  • 如何覆盖 gem 依赖?

    我有 2 个 gem 它们依赖于冲突版本的 hashie 一个需要 gt 1 2 0 另一个需要 3 3 1 Bundler could not find compatible versions for gem hashie In Gemf
  • 如何在多个多面 ggplot2 图形中实现相同的面大小和比例?

    我有一系列ggplot2具有恒定数量的水平面但不同数量的垂直面的图形 我想将图形保存为横向 a4 格式的 pdf 但是 我不知道如何才能实现相同比例的面 如果我尝试手动调整它并改变width and height对于不同数量的垂直面 图之间
  • 正则表达式不允许输入字段中有空格

    我的表单中有一个用户名字段 我不想在字符串中的任何地方允许空格 我已经使用了这个正则表达式 var regexp S 如果字符之间有空格 这对我有用 也就是说 如果用户名是ABC DEF 如果开头有空格 则不起作用 例如
  • 如何设置像 blogspot 这样的子域

    当用户注册我的网站时 应该如何为他们设置子域 需要哪些基础设施 我正在使用 Linux 服务器 您可以使用特定的 DNS CNAME or A AAAA 每个已知子域的条目 或接受 example com 的通配符 DNS 条目 ORIGI
  • Pandas 系列 - 打印列和行

    现在我不太担心在系列中获取数据的最有效方法 假设我的系列如下 A 1 B 2 C 3 D 4 如果我使用 for 循环来迭代它 例如 for row in seriesObj print row 上面的代码将在右侧打印值 但是可以说 我想获
  • 禁用 JTextPane 中的编辑,同时允许可见的光标移动

    我有一个JTextPane它是通过从文件中读取来填充的 然后对数据进行解析和格式化 该用户无权编辑JTextPane 但我希望他们能够使用可见的光标在其中导航 如果我使用setEditable false 光标是不可见的 尽管可以通过按住来