Как прокручивать jframe с измененным размером (приложение GUI Java) - PullRequest
0 голосов
/ 07 мая 2020

Я устал искать решение моей проблемы, а именно: у меня есть приложение 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, потому что макет установлен на абсолютный (ноль), а компоненты всегда в одном и том же месте, но есть ли способ получить прокручиваемое окно, когда экран меньше. Например, это нормально, когда экран 1024x768 и больше, но когда он 1024x600 (ноутбук 10 дюймов), я не вижу все компоненты

1 Ответ

0 голосов
/ 12 мая 2020

Я нашел решение для тех, у кого такая же проблема. Я изменил макет фрейма на 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, потому что рамка не будет зависеть от размера экрана, а компоненты будут увеличиваться в соответствии с размером экрана, но он работает для прокрутки.

...