java基本gui空白

jbose2ul  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(273)

当我运行这个程序时,它会显示为一个空窗口,直到你全屏显示,然后它可以根据你的喜好调整大小,它为什么这样做/我如何停止它?
这个程序非常基本,只是一个菜单栏和两个面板分开。

public class SplitPane {

    public static void main(String[] args) {
        window view = new window();
    }

    private static class window extends JFrame {

        public window() {
            this.setSize(1000, 750);
            this.setVisible(true);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

       //menubar is here, must lower code quantity for stack

        //panels
           //graph half 
            JPanel graphRep = new JPanel();
            //Background colour - graphRep.setBackground(Color.RED);
            graphRep.setVisible(true);
            String graphTitle = "Textual Representation.";
            Border graphBorder = BorderFactory.createTitledBorder(graphTitle);
            graphRep.setBorder(graphBorder);
            //text half
            JPanel textRep = new JPanel();
            textRep.setVisible(true);
            String textTitle = "Graphical Representation.";
            Border textBorder = BorderFactory.createTitledBorder(textTitle);
            textRep.setBorder(textBorder);

            //splitpane
            JSplitPane splitPane = new JSplitPane();
            splitPane.setSize(600, 750);
            splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
            splitPane.setOneTouchExpandable(true);
            splitPane.setDividerSize(10);
            splitPane.setDividerLocation(250);
            splitPane.setLeftComponent(graphRep);
            splitPane.setRightComponent(textRep);

            this.add(splitPane);
        }
    }
4xrmg8kj

4xrmg8kj1#

this.setVisible(true);

在将构件添加到框架之前,要使框架可见。从未调用布局管理器,因此所有组件的大小都保持为(0,0),因此没有要绘制的内容。
在将所有组件添加到框架后,框架应可见。
代码应该是:

frame.pack();
frame.setVisible();

因此,每个组件都以适当的大小显示。不要硬编码size(),因为您不知道用户屏幕的大小。

相关问题