gpt4 book ai didi

Java requestFocus() 不在构造函数中工作

转载 作者:行者123 更新时间:2023-11-30 09:24:18 26 4
gpt4 key购买 nike

在我的 Java Swing 应用程序中,Reuestfocus 方法在构造函数中不起作用。但如果我将 requestfocus 与按钮 Action 监听器一起使用,它就会起作用。我想在表单加载时设置 Requestfocus。我不明白这里出了什么问题。 P.S 我使用 JInternal Frame

  txtItemName.requestFocusInWindow (); // did not work
txtItemName.requestFocus (); // did not work

  public ItemMgt() {

initComponents();

SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
txtItemName.requestFocus(); // did not work
}
});
}

  private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
txtItemName.requestFocus(); // did not work.
}

最佳答案

这种情况可能是因为您的组件不可见,因此 GUI 管理器无法在其上设置焦点。

如文档中所述:

(..) component must be displayable, focusable, visible and all of its ancestors (with the exception of the top-level Window) must be visible for the request to be granted.

通常,您应该避免在构造函数中使用如此健壮的逻辑。您的图形组件应该首先构建。完成后,应根据您的喜好进行调整。

而不是 requestFocus() , 建议使用 requestFocusInWindow()更多内容请访问教程:How to Use the Focus Subsystem

关于Java requestFocus() 不在构造函数中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15759125/

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