java - 是否有代码可以使第一个 JFrame 的元素快速呈现?
问题描述
我的 Swing 应用程序运行良好,帧之间的切换速度很快。但是当我运行我的 Java Swing 应用程序时,第一个 JFrame 出现但上面没有元素,2-3 秒后,元素显示。有解决方案吗?
JFrame jframe = new JFrame();
jframe.setLayout(new FlowLayout());
jframe.add(new JButton("button"));
jframe.setVisible(true);
解决方案
我稍微修改了您的代码,因为您不应该将许多项目添加JFrame
到JPanel
. 我仍然不确定问题是什么。
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class JFrameTest extends JPanel {
JFrame jframe = new JFrame();
public static void main(String[] args) {
// get out of static context and start on EDT
SwingUtilities.invokeLater(()-> new JFrameTest().start());
}
public void start() {
setPreferredSize(new Dimension(500, 500));
jframe.add(this);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new JButton("button"));
jframe.pack();
// center on screen.
jframe.setLocationRelativeTo(null);
jframe.setVisible(true);
}
}