Java JFrame.setsize()不执行任何操作

Java JFrame.setsize()不执行任何操作,java,swing,jframe,Java,Swing,Jframe,出于某种原因,我似乎无法让它发挥作用: public class App { public static void main(String[] args){ JFrame frame = new JFrame("Hi"); frame.setSize(300, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame

出于某种原因,我似乎无法让它发挥作用:

public class App {

    public static void main(String[] args){

            JFrame frame = new JFrame("Hi");
            frame.setSize(300, 400);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);

    }
}

无论传递给setSize()的大小如何,运行程序时得到的窗口仍然很小。有什么建议吗?

你试试这段代码,会得到一个JFrame。并在程序中查看设置首选方法

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

public class JFrameDemo {

    public static void main(String s[]) {
        JFrame frame = new JFrame("JFrame Source Demo");
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        JLabel jlbempty = new JLabel("");
        jlbempty.setPreferredSize(new Dimension(175, 100));
        frame.getContentPane().add(jlbempty, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}

这是你的完整代码吗?因为这应该很好(对我来说是这样)。您确定没有调用
frame.pack()某个地方?对我来说,它正在工作。问题是什么?要更快地获得更好的帮助,请发布or。问题似乎出在上面没有显示的代码中。请注意,应在EDT上创建和更改GUI。请验证您的程序是否正在编译,以及您是否正在运行新编译的代码。您粘贴的代码片段似乎工作正常jlbempty.setPreferredSize(新维度(175100))猜测(关于大小)。添加所需大小的
EmptyBorder
,停止猜测。另见(是)