Swing 和 AWT:ContentPane 项目未显示在 JFrame 中

Swing & AWT: ContentPane items not showing in JFrame

我正在创建一个基本的 Java Swing 应用程序,但我的内容窗格出现问题,因为它没有显示我的对象。

这是我的主要 class 这将在未来调用其他 classes 并且只是调用 Frame.java:

public class Main 
{

    public static void main(String[] args)
    {
       System.out.println("HI");

       Frame frameObject = new Frame();
       frameObject.main();
    }
}

这是我创建框架的框架 class:

import javax.swing.*;
import java.awt.*;

public class Frame
{
    public static void main()
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                JFrame frame = new MainFrame("Warlock of Firetop Mountain");

                //Implementing Toolkit to allow computer to get dimensions of screen and assign them to two int values
                Toolkit tk = Toolkit.getDefaultToolkit();
                int xsize = (int) tk.getScreenSize().getWidth();
                int ysize = (int) tk.getScreenSize().getHeight();

                frame = new JFrame("Warlock of Firetop Mountain");
                frame.setTitle("Warlock of Firetop Mountain");
                frame.setSize(new Dimension(xsize, ysize));
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setResizable(true);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}

这是我的主要Frame.java我存储组件的地方:

public class MainFrame extends JFrame
{
    public MainFrame(String title)
    {
        super(title);

        setLayout(new BorderLayout());

        //Components - Buttons
        JButton saveButton =new JButton("Save");

        JButton loadButton =new JButton("Load");

        JButton optionsButton = new JButton("Options");

        JButton inventoryButton =new JButton("Inventory");

        Container buttonsContainer = getContentPane();
        buttonsContainer.add(saveButton, BorderLayout.LINE_START);
        buttonsContainer.add(loadButton, BorderLayout.CENTER);
        buttonsContainer.add(optionsButton,BorderLayout.CENTER);
        buttonsContainer.add(inventoryButton,BorderLayout.AFTER_LINE_ENDS);

        //Components - Enter Button
        JButton enterButton = new JButton("Enter");

        // /Components - ComboBox
        JComboBox pageTurner = new JComboBox();

        //Components = JTextArea
        JTextArea currentText = new JTextArea();
    }
}
frame = new JFrame("Warlock of Firetop Mountain");

为什么要用新的 JFrame 实例重置框架?你不是已经用MainFrame设置了吗?

您正在做的是将框架分配给包含所有组件的新 MainWindow。但是随后,您将框架重新分配给新的 JFrame,默认情况下 JFrame 没有组件。