Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在动态逐个添加组件时自动增加JFrame的高度_Java_Swing_Jframe_Jpanel - Fatal编程技术网

Java 如何在动态逐个添加组件时自动增加JFrame的高度

Java 如何在动态逐个添加组件时自动增加JFrame的高度,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,我正在设计一个swing独立应用程序。在我的应用程序中,我有一个表单,在这个表单中,当单击add按钮时,我会动态地一个接一个地添加一些组件。我的要求是,当我从上到下添加组件时,当添加的组件高度超过时,jframe和Main jpanel必须增加其高度 将ContainerListener添加到JFrame。在componentAdded方法中,打包JFrame。大概是这样的: JFrame frame = getJFrame(); frame.addContainerListen

我正在设计一个swing独立应用程序。在我的应用程序中,我有一个表单,在这个表单中,当单击add按钮时,我会动态地一个接一个地添加一些组件。我的要求是,当我从上到下添加组件时,当添加的组件高度超过时,jframe和Main jpanel必须增加其高度

将ContainerListener添加到JFrame。在componentAdded方法中,打包JFrame。大概是这样的:

    JFrame frame = getJFrame();
    frame.addContainerListener(new ContainerListener() {

        @Override
        public void componentAdded(ContainerEvent e) {
            frame.pack();
        }

        @Override
        public void componentRemoved(ContainerEvent e) {
        }
    });

frame.pack()
,或者可能更好,在
JScrollPane
中有一个合适的渲染器的
JList
。先生,当我使用JScollpane时。但当没有添加的组件超过主jpanel的高度时。主jpanel不会自动调整其高度。请提出一个解决方案。