如何滚动调整大小的 jframe(GUI Java app)

How to scroll resized jframe(GUI Java app)

我厌倦了为我的问题寻找解决方案,也就是说,我有 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 上,因为布局设置为绝对(空)并且组件始终位于同一位置,但是是否存在一种在屏幕较小时滚动 window 的方法。例如,当屏幕为 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的preferredSize! 是的,这是这个问题的解决方案,但在我的情况下使用 gridBagLayout 会更好,因为框架不依赖于屏幕尺寸,组件会根据屏幕尺寸放大,但它适用于滚动。