Редактировать: при перетаскивании границ отправляется какое-то обновление, мне нужно выяснить это и вручную отправить то же самое обновление.
- Обратите внимание, что я пытался использовать revalidate () иrepaint ().
При использовании JFrame и JPanel для отображения рамки я пытаюсь сделать так, чтобы размер рамки легко изменялся.
Что япопытка сделать это - переключиться, чтобы я мог переключаться между «маленьким представлением» и «большим представлением».
Однако при отображении содержимого панели появляется белая полоса:
- открытая рамка ... (по умолчанию большой размер)
- установлен на маленький размер
- установлен на большой размер
- установлен на маленький размер (это когда появляется белая полоса) (см. комментарии в основном методе)
Вот изображение белой полоски, которая появляется в нижней части содержимого на рамке:
Кроме того, большое примечание состоит в том, что белая полоса исчезает и перезагружается / обновляетсяПравильно ли отображается содержимое при перетаскивании границы (даже если вы перетаскиваете ее только на небольшое количество)
public class FrameTest {
private static FrameTest instance;
JFrame clientFrame
JPanel client_panel;
private void openFrames() {
JclientFrame = new JFrame("727 Deob");
clientFrame.setLayout(new BorderLayout());
client_panel = new JPanel();
client_panel.setLayout(new BorderLayout());
client_panel.add(new Applet());
client_panel.setPreferredSize(new Dimension(765, 555));
clientFrame.getContentPane().add(client_panel, BorderLayout.PAGE_END);
clientFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
clientFrame.pack();
clientFrame.setVisible(true);
}
public static void main(String[] args) {
instance = new FrameTest();
instance.openFrames();
instance.setDimensions(true); //works absolutely fine!
instance.setDimensions(false); //continues to work absolutely fine!
instance.setDimensions(true); //now the white bar at the bottom appears
}
public void setDimensions(boolean smallType) {
int width = 765;
int height = smallType ? 530 : 577;
clientFrame.setSize(width, height);
//tried using revalidate() and repaint() here on the frame, the frame contents AND the panel... NO LUCK, white bars still aren't fixed.
}
}