gpt4 book ai didi

java - 将焦点设置到 JPanel 中的 Swing 控件的最佳实践

转载 作者:行者123 更新时间:2023-11-29 10:03:31 25 4
gpt4 key购买 nike

一个学派说添加一个窗口监听器并在 windowOpened 事件触发时设置焦点:

addWindowListener(new WindowAdapter(){ 
public void windowOpened( WindowEvent e){
txtMessage.requestFocus();
}
});

另一种观点认为使用 SwingUtilities.invokeLater 方法在单独的线程中设置焦点。

SwingUtilities.invokeLater(new Runnable()
{
public void run() {
field.requestFocus();
}
});

谁能告诉我哪个是最佳实践,或者您什么时候会选择一个而不是另一个?使用线程解决方案时,是否有可能线程丢失并且焦点永远不会设置?

最佳答案

GUI 的所有更新都必须在事件调度线程 (EDT) 上完成。如果您不确定自己是否在上面,invokeLater(...) 将始终保证。如果您使用它并且不需要它,它不会损害任何东西。

此外,您应该使用 field.requestFocusInWindow();

关于java - 将焦点设置到 JPanel 中的 Swing 控件的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15796178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com