Java 如何使用GUI intelliJ显示框架

Java 如何使用GUI intelliJ显示框架,java,user-interface,intellij-idea,frame,Java,User Interface,Intellij Idea,Frame,我正在使用IntelliJ GUI功能,我正在努力显示框架 下面是我的GUI组件的图片: 下面是我用来在IDE中配置它的代码: public class SftpDoc extends JPanel{ private JRadioButton radioButton1; private JRadioButton radioButton2; private JRadioButton radioButton3; private JButton button1; private JComboBox

我正在使用IntelliJ GUI功能,我正在努力显示框架

下面是我的GUI组件的图片:

下面是我用来在IDE中配置它的代码:

public class SftpDoc extends JPanel{

private JRadioButton radioButton1;
private JRadioButton radioButton2;
private JRadioButton radioButton3;
private JButton button1;
private JComboBox comboBox1;
private JTextField textField1;
private JButton browseButton;
private JButton button2;
private final static JPanel panel = new JPanel();

public SftpDoc(){

    panel.add(button1);
    panel.add(comboBox1);
    panel.add(radioButton1);
    panel.add(textField1);
    panel.add(browseButton);
    panel.add(radioButton2);
    panel.add(radioButton3);
    panel.add(button2);

}

public static void main(String[] args) {

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            frame.getContentPane().add(panel);
            frame.setVisible(true);

        }
    });

}
}
运行该类时,框架是唯一出现的组件:

尝试最大化窗口或在代码-frame.setSize()中设置帧大小

因此我设法让它运行并显示所有内容。我没有扩展JPanel,而是使用JFrame并调用要设置为可见的类。代码如下:

public class SftpDoc extends JFrame {

private JRadioButton radioButton1;
private JRadioButton radioButton2;
private JRadioButton radioButton3;
private JButton button1;
private JComboBox comboBox1;
private JTextField textField1;
private JButton browseButton;
private JButton button2;
private final static JPanel panel = new JPanel();

public SftpDoc() {

    panel.add(button1);
    panel.add(comboBox1);
    panel.add(radioButton1);
    panel.add(textField1);
    panel.add(browseButton);
    panel.add(radioButton2);
    panel.add(radioButton3);
    panel.add(button2);
    panel.revalidate();
    add(panel);
    pack();
}

public static void main(String[] args) {

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new SftpDoc().setVisible(true);
        }
    });

}
}

您好,您必须添加frame.pack();在setVisible()方法之前

如果您使用frame.pack(),它将根据其中组件的大小自动更改框架的大小。您好,谢谢您的评论。我试着添加,但它仍然显示帧内没有任何内容。
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);