Java 无法将回转组件放置到运行()中的框架上?

Java 无法将回转组件放置到运行()中的框架上?,java,swing,Java,Swing,此代码将不显示按钮,仅显示框架。此外,我在run方法之外测试了精确的代码,结果很好。我不能在run方法中显示按钮或其他组件吗?若然,原因为何?也许我对EventQueue的理解是错误的。我不确定BorderLayout是否喜欢容器中已经存在组件的情况 由于BorderLayout是JFrame的默认布局管理器,只需删除setLayout调用 public Test() { EventQueue.invokeLater(new Runnable() { JFrame

此代码将不显示按钮,仅显示框架。此外,我在run方法之外测试了精确的代码,结果很好。我不能在run方法中显示按钮或其他组件吗?若然,原因为何?也许我对EventQueue的理解是错误的。

我不确定
BorderLayout
是否喜欢容器中已经存在组件的情况

由于
BorderLayout
JFrame
的默认布局管理器,只需删除
setLayout
调用

public Test() {
    EventQueue.invokeLater(new Runnable()
    {
        JFrame frame = new JFrame("Test Frame");
        JButton button = new JButton("Button");

        frame.add(button);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());

        frame.setSize(600,600);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

不过,在将来,请先设置布局管理器;)

您没有
run
方法,只有一个
Runnable
类,其中散落了一些语句。
frame.add(button);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame.setLayout(new BorderLayout());