2015-05-15 1 views
-1

Я закодировал программу, в которой вы можете вставить координаты и размер квадрата и нарисовать его на JPanel. Я использовал:Java, опираясь на JPanel с цветами

panel.getGraphics().drawRect(x,y,h,b); 

Теперь я хочу, чтобы добавить цвет-Chooser подобное:

color Farbe = JColorChooser.showDialog(null, "Color-Chooser", null); 

Так как теперь я рисую площадь с цветом? Я попытался это, но он не работает:

panel.getGraphics().drawRect(x,y,h,b, Farbe); 
+0

Ошибка № 1 - Не форматирование вашего кода в вопросе; Ошибка №2 - 'panel.getGraphics()' – MadProgrammer

ответ

1

panel.getGraphics() НЕ как должна быть выполнена на заказ картины.

См Painting in AWT and Swing и Performing Custom Painting для получения более подробной информации

Start путем создания пользовательского компонента, который простирается от чего-то JPanel, переопределить это paintComponent метод (и убедитесь, что вы звоните super.paintComponent, прежде чем делать какие-либо пользовательские картины).

Поместите в него логику «рисования». Эта панель должна предоставлять сеттер и getter, который позволяет внешним классам изменять цвет прямоугольника, как рисовать, таким образом, когда вызывается paintComponent, вы можете соответствующим образом изменить цвет контекста Graphics.

Кроме того, обратите внимание на 2D Graphics для получения более подробной информации о том, как картина сделана

Не забудьте позвонить repaint, когда цвет изменяется, чтобы поощрить панель перекрашивать

+0

Хотя я согласен с этим ответом, на самом деле он не отвечает на вопрос. Пожалуйста, добавьте, что 'drawRect' не имеет параметра цвета и что OP должен вызывать' setColor'. – 11684

+0

@ 11684 'drawRect' - это метод объекта« Graphics », с помощью которого вы также можете изменить цвет. – MadProgrammer

+0

Изменить цвет через' drawRect() '?! Позвольте мне снова проверить документы. – 11684