首页 > 解决方案 > 是否有代码可以使第一个 JFrame 的元素快速呈现?

问题描述

我的 Swing 应用程序运行良好,帧之间的切换速度很快。但是当我运行我的 Java Swing 应用程序时,第一个 JFrame 出现但上面没有元素,2-3 秒后,元素显示。有解决方案吗?

JFrame jframe = new JFrame();
jframe.setLayout(new FlowLayout());
jframe.add(new JButton("button"));
jframe.setVisible(true);

标签: javaswinguser-interface

解决方案


我稍微修改了您的代码,因为您不应该将许多项目添加JFrameJPanel. 我仍然不确定问题是什么。

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);
   }

}


推荐阅读