2016-05-06 2 views
0

Итак, программа рисует автомобиль, и я собираюсь сделать три кнопки, одну для вспышки, чтобы инициализировать возможность мигания, одну налево, чтобы переместить автомобиль на одно место слева и справа, чтобы переместить автомобиль на одно место право. Мой вопрос: как я могу изменить цвет при каждом нажатии кнопки? Поэтому, чтобы подвести итог, я не знаю, как изменить цвет объекта каждый раз, когда кнопка нажата, когда мигает. Предполагаю, что использую краску()Как изменить цвет нарисованного элемента после нажатия кнопки JButton?

Любая помощь будет оценена.

ответ

0

Если вы рисуете изображение, вам нужно загрузить другой файл изображения, который отличается от другого, и затем нарисуйте это изображение. Вы сделаете это в любом способе, который вы сейчас используете, чтобы нарисовать автомобиль.

Если вы рисуете какую-либо форму или текст, вы можете вызвать g.setColor() на графическом объекте, переданном методу paint() или paintComponent(), перед рисованием фигуры.

0

Существует множество способов сделать это. Однако основное требование состоит в том, чтобы иметь Object, который вы можете сказать, когда он должен изменить цвет, тогда он предпримет соответствующие действия и соответствующим образом обновит интерфейс.

Вы могли бы ...

Используйте простой JPanel как представление объекта и просто назвать это setBackground метод цвет, когда вы хотите изменить цвет.

Предполагается, что вы хотите использовать LayoutManager для размещения панели. Хотя это, безусловно, выполнимо, это потребует некоторой мысли в общий дизайн

Вы могли бы ...

Используйте JPanel и переопределить это paintComponent метод и покрасить изменение цвета есть. На простейшем уровне это слишком много, но если вы также хотите нарисовать «автомобиль» или изображение «автомобиля», это станет немного более значимым, особенно если вы хотите повернуть автомобиль в зависимости от направления движения

См Painting in AWT and Swing, Performing Custom Painting и 2D Graphics для более подробной информации

Flashing

Я предполагаю, что вы имеете в виду вы хотите, чтобы объект был анимирован в некотором роде и «мигают» и выключается.

Это можно легко осуществить с помощью Swing Timer, который может использоваться для изменения состояния простого флага, который изменяет способ визуализации компонента.

См How to use Swing Timers для более подробной информации

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

+0

Не хотите ли подчеркнуть причину понижения? Каким образом (ым) он не отвечает на вопросы ОП? Каким образом это можно улучшить? – MadProgrammer

Смежные вопросы