今天在我的Swing应用程序中,当我左键单击时,文本区域会聚焦。当我右键单击任何其他文本字段时,会出现弹出菜单,但该文本区域未聚焦。重点仍然放在之前左键点击的字段上。如何从前一个字段中删除焦点并使其显示在右键单击的字段上?
if (e.isPopupTrigger()) {
ContextMenu menu = new ContextMenu();
menu.show(tree, e.getX(), e.getY());
}
在mouseRelease上执行此操作。
答案 0 :(得分:3)
假设你的意思是'焦点'而不是'突出':
创建JTextField的子类,添加鼠标侦听器并强制文本字段在按下,释放或单击鼠标按钮时请求焦点(三个版本以确保它适用于每个平台)。
a = tf.Variable(1)
b = tf.Variable(a.initialized_value())
sess.run(tf.global_variables_initializer())
# Initially, variables `a` and `b` have the same value.
print(sess.run([a, b])) ==> [1, 1]
# Update the value of `a` to 2.
assign_op = a.assign(2)
sess.run(assign_op)
# Now, `a` and `b` have different values.
print(sess.run([a, b])) ==> [2, 1]
然后,您可以直接创建文本字段'new TextFieldRClick()',以便在用户右键单击它们时获得焦点。
我有同样的问题,这为我解决了。
编辑:将requestFocus()更改为requestFocusInWindow()。 requestFocus()据说与平台有关,不应再使用了。