Вызов метода Java с неявным параметром Graphics, например repaint (), или доступ к Graphics в JPanel - PullRequest
0 голосов
/ 14 марта 2009

Когда вы вызываете repaint (), например, вызывается repaintComponent (Graphics), а затем вы можете вызывать его извне класса без параметра Graphics.

Мне бы хотелось иметь функцию, которая принимает больше параметров, которые я использую, но я все еще хочу иметь возможность рисовать с ней, поэтому мне нужно иметь возможность делать такие вызовы (например, вызовы repaint () repaintComponent (Graphics)) или получите доступ к Graphics для вызова функции, при условии, что она будет перекрашена путем явного вызова repaintComponent () в любом случае.

Я думал о том, чтобы поместить данные в объект, а затем нарисовать, но я не уверен, что это сработает и будет довольно сложно, я думаю.

1 Ответ

1 голос
/ 15 марта 2009

Вы не можете выполнять рисование каких-либо компонентов в GUI, кроме как и только во время обработки события рисования O / S, которое запускает событие рисования Java в потоке диспетчеризации событий. Repaint не вызывает paint () или любые его производные - он запрашивает перерисовку области вашего компонента, и это вызывает событие рисования.

Вам нужно каким-то образом установить информацию, необходимую для рисования, в ваш компонент, будь то путем установки свойств (например, Swing) или создания подклассов и добавления сеттера в ваш подклассовый компонент. Поместив ваши данные в объект, установка этого объекта в ваш компонент должна быть тривиальной.

Вы также можете создать отдельный объект с помощью метода paint (Graphics), связать этот объект с вашим компонентом и вызвать его метод (ы) рисования из объекта paint - я делал это в прошлом, чтобы отделить рисование относится к большому количеству объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...