Обратите внимание, что я не проверял это на Windows-машине, только на Mac-машине.Я не уверен, происходит ли это и на Windows-машине ...
Когда я изменяю размер моего Java-приложения, содержимое становится невидимым.Я уже нашел способ исправить это после изменения его размера, но не , пока пользователь изменяет размер окна.
Я не использую Swing или что-то еще, потому что этоделает мой двоичный файл таким медленным (по моему мнению).
Структура выглядит следующим образом:
Frame
Мое главное окно Containe
r Просмотр содержимого main-window
Container
основанных подпредставлений, включая paint(Graphics g)
-метод
Я добавил всех слушателейMy main-window
и теперь я могу перерисовать Content-view после изменения размера окна.
public void componentResized(ComponentEvent e) {
this.contentView.paint(this.contentView.getGraphics());
}
ЯОстерегайтесь того факта, что использование paint(getGraphics())
-метода не очень хороший способ сделать это, но так как repaint()
-метод вообще ничего не делает, это единственная рабочая возможность.
При изменении размера весь нарисованный контент становится невидимым.Однако, когда я добавляю Button
-экземпляр к моему Content-view
и изменяю размеры моего Main-window
, кнопка не становится невидимой.
I am в состоянии отследить событие «живого» изменения размера:
public void componentMoved(ComponentEvent e) {
System.out.println("Live-resize");
}
- Когда я начинаю изменение размера, этот метод не вызывается.
- При изменении его размерагенерирует «Live-resize» в моем журнале каждый пиксель, который я изменяю размер окна.
- Когда я прекращаю изменение размера, этот метод не вызывается, метод componentResized делает.
КогдаЯ добавляю свой repaint-метод (или официальный repaint-метод) к событию «live» -izeize, как это, я все еще получаю вывод, однако, это не перерисовка или что-то еще
public void componentMoved(ComponentEvent e) {
System.out.println("Live-resize");
this.contentView.paint(this.contentView.getGraphics());
}
или
public void componentMoved(ComponentEvent e) {
System.out.println("Live-resize");
this.contentView.repaint();
}
Когда я минимизирую свое приложение до дока и снова максимизирую приложение, происходит то же самое, я предполагаю, что тот же код необходим, чтобы исправить это.
Я не использую Graphics2D
или что-то, просто Graphics
.
Не могли бы вы объяснить, как я могу перекрасить взгляды?
Заранее спасибо, Тим