如何滚动调整大小的jframe(GUI Java应用程序)

如何滚动调整大小的jframe(GUI Java应用程序),java,swing,user-interface,jframe,jscrollpane,Java,Swing,User Interface,Jframe,Jscrollpane,我已经厌倦了为我的问题寻找解决方案,也就是说,我有Java swing应用程序,带有Jframe、JtabbedPane和4个Jpanel。框架设置为 frmPartsWarehouse.setExtendedState(frmPartsWarehouse.MAXIMIZED_BOTH); frmPartsWarehouse.setResizable(true); frmPartsWarehouse.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

我已经厌倦了为我的问题寻找解决方案,也就是说,我有Java swing应用程序,带有Jframe、JtabbedPane和4个Jpanel。框架设置为

frmPartsWarehouse.setExtendedState(frmPartsWarehouse.MAXIMIZED_BOTH);
frmPartsWarehouse.setResizable(true);
frmPartsWarehouse.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmPartsWarehouse.getContentPane().setLayout(new BorderLayout(0, 0));

现在,有没有一种方法可以在屏幕大小小于组件时设置滚动,我现在的问题是Jpanel的,因为布局设置为绝对(null),组件总是在同一个位置,但有没有一种方法可以在屏幕更小时获得滚动窗口。例如,当屏幕为1024x768或更大时,这是正常的,但当屏幕为1024x600(笔记本电脑10```时,我看不到所有组件

我为那些有相同问题的人找到了解决方案 我将框架布局更改为gridLayout,然后创建JScrollPane并添加选项卡式窗格以滚动,然后滚动到框架内容窗格,代码如下

frmPartsWarehouse.getContentPane().setLayout(new GridLayout(0, 1,0,0)); 

    JTabbedPane tabPane = new JTabbedPane();
    tabPane.setPreferredSize(new Dimension(1327,678));
    JScrollPane scroll = new JScrollPane(tabPane);      
    scroll.setEnabled(true);
    frmPartsWarehouse.getContentPane().add(scroll);
卷轴将只滚动到首选的tabbPane大小! 是的,这是这个问题的解决方案,但在我的例子中使用gridBagLayout要好得多,因为帧不依赖于屏幕大小,组件将根据屏幕大小放大,但它用于滚动。

layout设置为绝对(null)-这就是问题所在。Swing设计用于布局管理器(不是空布局)。只有在使用布局管理器时,滚动才能正常工作