#java #graphics #2d #paintcomponent #java-2d
#java #графика #2d #компонент рисования #java-2d
Вопрос:
у меня простой вопрос. Я новичок в Java 2D API, поэтому мой вопрос:
Есть ли возможность вручную установить приоритет чего-либо, что рисуется в paintComponent() ?
Ответ №1:
Первое, что вы нарисуете, будет самое дальнее заднее. Итак
public void paintComponent(Graphics g) {
g.drawRect(10, 10, 80, 30); // Drawn in back
g.drawRect(20, 20, 70, 40); // Drawn in middle
g.drawRect(10, 10, 10, 10); // Drawn in front
...
}
Комментарии:
1. Я хочу вызвать функцию, которая удалит все с экрана компонента рисования, а затем начнет добавлять обратно. Однако, когда я использую функцию clearRect(), она очищает экран, но я не собираюсь это закрашивать.
2. Вы вызываете clearRect() перед вызовом drawRect() правильно?
Ответ №2:
Если вы скажете Java сначала нарисовать что-то, оно будет нарисовано первым, и все, что вы нарисуете поверх этого, будет нарисовано поверх первого, что вы нарисовали.
Ответ №3:
Вы не можете указать приоритет, но вы можете указать порядок (в коде порядка), в котором рисуется каждый объект. Вот один из примеров.
public void paint(Graphics screen) {
sortByDepth(screen);
backFaceCulling(screen);
applyProjection(screen);
drawCube(screen);
}
Вам может очень помочь следующая книга: Введение в компьютерную графику с использованием Java 2D и 3D. Кроме того, вы можете захотеть увидеть определение видимой поверхности, если хотите нарисовать что-то подобное:
См . также: