На Mac возникает большая задержка, когда я создаю несколько окон JInternalFrame в JFrame и перетаскиваю их.
https://i.sstatic.net/Av15A.gif
возникает большая задержка, когда я создаю несколько окон JInternalFrame в JFrame и перетаскиваю их
public static void main(String... args) {
System.out.println("Hello World!");
JFrame mainFrame = new JFrame("Hello");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(1920, 1080);
JDesktopPane desktopPane = new JDesktopPane();
mainFrame.setContentPane(desktopPane);
for (int i = 0; i< 10; i++) {
JInternalFrame internalFrame = new JInternalFrame("Hello");
internalFrame.setPreferredSize(new Dimension(1800, 1000));
desktopPane.add(internalFrame);
internalFrame.setVisible(true);
internalFrame.pack();
// internalFrame.setDebugGraphicsOptions(DebugGraphics.LOG_OPTION);
}
mainFrame.setVisible(true);
}
Нет проблем, если включена отладка.
internalFrame.setDebugGraphicsOptions(DebugGraphics.LOG_OPTION);
Я тестировал Java 15 и Java 8, и у обеих возникла эта проблема.
Кто-нибудь знает, почему при перетаскивании окна JInternalFrame возникает серьезная задержка?
@MadProgrammer Нет, изображения не имеют значения, я не визуализирую эти изображения, я просто создаю несколько пустых JInternalFrame, но при перетаскивании JInternalFrame возникает очень большая задержка.




for (int i = 0; i< 10; i++) {
JInternalFrame internalFrame = new JInternalFrame(String.valueOf(i));
internalFrame.setPreferredSize(new Dimension(1800, 1000));
desktopPane.add(internalFrame);
internalFrame.setVisible(true);
internalFrame.pack();
internalFrame.setOpaque(true);
// internalFrame.setDebugGraphicsOptions(DebugGraphics.LOG_OPTION);
}
Добавление internalFrame.setOpaque(true); может облегчить эту проблему.
Кажется, у меня работает нормально. Вы визуализируете эти изображения?