首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在JTextArea上调度关键事件不会移动插入符号

在JTextArea上调度关键事件不会移动插入符号
EN

Stack Overflow用户
提问于 2015-05-08 00:26:37
回答 2查看 375关注 0票数 2

我想模拟JTextArea上的按键。我会使用机器人类,但是我想输入的窗口没有焦点。所以我有一个这样的场景:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Test {
  public static void main(String[] args) {
    Frame frame = new Frame();
    JTextArea text = new JTextArea();
    frame.add(text);
    frame.pack();
    frame.setVisible(true);

    text.dispatchEvent(new KeyEvent(text,
          KeyEvent.KEY_TYPED, 0,
          0,
          KeyEvent.VK_UNDEFINED, 'H'));
    text.dispatchEvent(new KeyEvent(text,
          KeyEvent.KEY_TYPED, 0,
          0,
          KeyEvent.VK_UNDEFINED, 'L'));
  }
}

但是在输入H之后,插入符号没有向右移动,这导致L在H之前被键入:区域中的最后文本是LH,但我希望它是HL。

我可以在H和L之间分派一个新的键事件,该事件将向右移动插入符号(右箭头)或调用setCaretPosition,但我正在寻找一个解决方案,该解决方案不会手动移动插入符号,行为就像输入的人(我正在为测试来自学生的作业做测试人员)。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-11 07:28:10

Steve更改默认插入符号的解决方案运行良好,但还有另一种解决方案,即执行主线程中的所有键按,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.awt.EventQueue.invokeLater(new Runnable() {
  public void run() {
    // dispatch the event now
    text.dispatchEvent(new KeyEvent(text, KeyEvent.KEY_TYPED, 0, 0, KeyEvent.VK_UNDEFINED, 'H'));
  }
});

似乎在主线程中分派KeyEvents时,它们会自动移动插入符号。对我来说这似乎是最好的解决方案。

票数 0
EN

Stack Overflow用户

发布于 2015-05-08 01:16:44

自定义插入符以始终更新其位置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
final DefaultCaret caret = new DefaultCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
text.setCaret(caret);

来自DefaultCaret JavaDoc

允许使用下列更新策略: NEVER_UPDATE:插入符号保持在文档中相同的绝对位置,而不考虑任何文档更新,除非由于删除而使文档长度小于当前插入符号位置。在这种情况下,插入符号的位置将调整到文档的末尾。在使用此策略时,插入符号不试图通过滚动关联视图来保持自身可见。 ALWAYS_UPDATE:插入符号总是跟踪文档更改。对于常规的更改,如果插入发生在当前位置之前或在当前位置,则增加其位置;如果删除发生在当前位置之前,则减小位置。对于撤消/重做更新,它总是移动到发生更新的位置。插入符号还试图通过调用adjustVisibility方法来保持自身可见。 UPDATE_WHEN_ON_EDT:如果在事件调度线程上执行文档更新,则执行类似于ALWAYS_UPDATE的操作;如果在其他线程上执行更新,则类似于NEVER_UPDATE。 默认属性值为UPDATE_WHEN_ON_EDT。

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

https://stackoverflow.com/questions/30119201

复制
相关文章
锚点导航
锚点导航这种功能应该很常见,早之前就分享过移动端移动端导航简单实现,配合起来就很容易实现可移动的锚点导航,而且不是用hash模式。当然,PC端也能直接用。
wade
2021/01/12
2.8K0
锚点导航
HTML锚点
        以前只是知道有锚点这么个东西,一直没有用到,昨天做毕设用到了锚点,现在总结一下控制锚点的几种情况:         1. 在同一页面中 <a name="add"></a><!-- 定
高爽
2017/12/28
3.7K0
vue页面内锚点跳转
这两天想用刚学的Vue做一个网址导航,刚好手里有一个域名v1.pw,于是唯一导航便诞生了。
SingYi
2022/07/13
5.6K1
vue页面内锚点跳转
HTML内的锚点链接
作者:matrix 被围观: 5,207 次 发布时间:2013-03-14 分类:兼容并蓄 | 无评论 »
HHTjim 部落格
2022/09/26
2.2K0
锚点跳转的过渡效果
CSS实现:http://stackoverflow.com/questions/17631417/css-pure-css-scroll-animation jq实现: $(function () { $('a[href*=#],area[href*=#]').click(function () { console.log(this.pathname) if (location.pathname.replace(/^\//, '') == this.pathname
逸鹏
2018/04/10
1.9K0
Confluence 6.15 锚点(Anchor)宏
允许你链接到页面的特定部分。有关如何使用锚点的内容,请参考页面 Anchors 页面中的详细内容。
HoneyMoose
2019/08/28
2.2K0
正则表达式 | 锚点
\z和Z区别:它们都是整段匹配,而\Z匹配的时候在输入的结尾处有和没有终止子(\r,\n,\r\n)都能匹配。
Qt君
2020/07/21
1.6K0
hash实现锚点平滑滚动定位
解析  访问该页面的地址:http://127.0.0.1/anchor.html(我是在本地服务器上测试的)  点击a链接锚点1,则页面会直接跳到红色的div(锚点1),同时,浏览器地址改变为http://127.0.0.1/anchor.html#anchor1  虽然可以直接定位到制定的位置,但是效果很差,没有平缓的过渡效果。
我是leon
2019/08/28
8.7K1
锱铢必较:如何在简书Markdown中使用锚点
锚点是什么 在html语言中,锚点可以快速定位到页面元素的位置。 例如下面这个链接就可以让读者直接跳到“有用的提示”这部分,而不用从头开始阅读。 http://www.w3school.com.cn/html/html_links.asp#tips 简书Markdown效果 在简书上,我写了一篇介绍linux命令的文章,也使用了类似锚点的功能,这样在发介绍某个命令给别人看的时候,能让他直接跳到对应的命令上。 效果如下: ssh无秘钥登录 查看某个进程的工作文件夹 实现过程 简书的Markdown编
大神带我来搬砖
2018/06/11
8450
【技巧】ionic3锚点操作
简单记录下,当想滚动到某个位置,可以给该位置一个id,称为锚点,如: <div id="A"></div> 然后在ts里调用下述方法即可,调用前确保html渲染完成: scrollIntoView(id: string){ let element = document.getElementById(id); if(element){ element.scrollIntoView(); } }
IT晴天
2018/08/20
1.4K0
谈谈HTML中锚点及其使用
<a>元素 (或HTML锚元素, Anchor Element)通常用来表示一个锚点/链接。但严格来说,<a>元素不是一个链接,而是超文本锚点,可以链接到一个新文件、用id属性指向任何元素。如果没有<a>元素没有href属性的话,可以作为原本链接位置的占位符,常用于home链接
Javanx
2020/08/19
3.4K0
谈谈HTML中锚点及其使用
cocos2d-x AnchorPoint锚点
锚点是定位和变换操作的一个重点。锚点我们可以看成用一根图钉将一张纸或者相片钉在墙上的那个点。 节点的位置是由我们设置的position和anchor point一起决定的。 值得一提的是,anchor point的默认位置Layer的是左下,而其他的node是中点。 节点的原点是父节点的左下角。 CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);   CCLayer* layer2 = CCLayerColor::crea
_gongluck
2018/03/08
2.3K0
cocos2d-x AnchorPoint锚点
HTML 锚点三种实现方法
scrollIntoView()的用法 scrollIntoView是一个与页面(容器)滚动相关的API,该API只有boolean类型的参数能得到良好的支持(firefox 36+都支持)
青梅煮码
2023/01/16
3.5K0
正则表达式 锚点、环视
正则表达式定义了一些特殊字符表示文本中的位置,称作锚点,锚点匹配文本中的某个位置但不消耗字符。这些特殊字符包括
luoheng
2022/08/28
1.4K0
【第012期】如何设置页面锚点
不知道大家有没有注意到,在我们上网的时候,会看到有些链接打开之后可以直接定位到页面的某个位置处。
姬小光
2018/09/05
2.2K0
【第012期】如何设置页面锚点
iOS利用锚点实现定点缩放弹窗
demo下载地址:https://download.csdn.net/download/u011018979/16092830
公众号iOS逆向
2021/07/29
1.6K0
可连接的冰箱锚点IoT家庭?
一定要保证鸡尾酒会吹牛的权利,但智能冰箱真的有多么变化? 最新的物联智能(IoT)Tracker™与三星电子美国高级副总裁Yoon Lee一起挖掘出AI嵌入式电器。 李认为,智能冰箱成为“新厨房生活方
架构师研究会
2018/04/09
1.6K0
可连接的冰箱锚点IoT家庭?
html锚点id属性和name属性
刚接触HTML的时候就知道描点,所以对描点这两个字特别熟悉,但一直没用过😂。最近对模板更新时用到了这一点,举例说一下
Dabenshi
2023/08/24
3860
【点云学习】软件制作2 点云转2D
常用的一种颜色格式,RGB分别代表红,绿和蓝。RGB值的变化代表了颜色的变化。
EdenChen
2020/03/31
8180
【点云学习】软件制作2 点云转2D
react-router 环境使用锚点的方法
锚点是通过在界面中增加一些特征(比如 id),然后在 URL 地址后面加上 #id 就可以访问到指定页面的指定位置,这样可以让我们快速跳转到页面的某个位置,但是在 react-router 中这种方法遇到了问题,因为 react-router 会把 # 当做是 hash 来处理。导致即使跳转到指定页面后,# 后面的锚点也不生效。针对这个问题,在 react-router 的一个 issue 中大家也展开了激烈的讨论。以下是我看过以后整理的几种解决办法。 只有某些页面需要 当只有某些页面需要使用锚点的时候,可
我与梦想有个约会
2018/07/02
1.9K0

相似问题

如何在Java中找到锚点/旋转点?

26

如何相对于中心移动div (如锚点)?

34

向powerpoint形状添加锚点

154

未约束到中心y锚点的底部锚点的对象

10

形状旋转-锚点不跟随- JavaFX

113
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文