gpt4 book ai didi

java - 在设置可见之前向 JFrame 添加内容

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:10 26 4
gpt4 key购买 nike

我有一个在主函数中创建的 JFrame。我想给它添加一个 JTextField。我遇到的问题是创建了 JFrame,然后 - 大约一秒钟的延迟 - 添加了 JTextField。有没有一种方法可以将文本字段绘制到我的窗口,然后一次显示所有内容?提前致谢!

作为引用,这是我的代码:

public class Window {

public static final JFrame window = new JFrame();
public static final JTextField input = new JTextField();

private static void loadWindow(){

window.setSize(800, 600);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new FlowLayout());
input.setPreferredSize(new Dimension(400, 60));

window.add(input);
window.setVisible(true);

}

public static void main(String[] args){

loadWindow();

}

}

这是正在发生的事情的时间表:

第一秒:

enter image description here

第二个:

enter image description here

最佳答案

把这个归因于怪异......

我变了

public static final JTextField input = new JTextField();

public static final JTextField input = new JTextField(20);

而且效果很好...

不过我会鼓励你...

  • 避免使用 setPreferredSize,因为它并不总是适用于所有平台,因为您无法控制渲染管道,这会影响组件正确渲染所需的空间量
  • 在 EDT 中启动您的 UI...

例如……

EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}

loadWindow();
}
});

关于java - 在设置可见之前向 JFrame 添加内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183224/

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