右键单击Swing中的焦点

时间:2016-02-19 19:50:26

标签: java swing

今天在我的Swing应用程序中,当我左键单击时,文本区域会聚焦。当我右键单击任何其他文本字段时,会出现弹出菜单,但该文本区域未聚焦。重点仍然放在之前左键点击的字段上。如何从前一个字段中删除焦点并使其显示在右键单击的字段上?

if (e.isPopupTrigger()) {
        ContextMenu menu = new ContextMenu();
        menu.show(tree, e.getX(), e.getY());
    }

在mouseRelease上执行此操作。

1 个答案:

答案 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()据说与平台有关,不应再使用了。

相关问题