2015-11-19 2 views
1

Когда я нажимаю на фигуру, чтобы показать «выбор», я хочу вызвать метод drawSelected, который перекрасит форму, чтобы показать, что она выбрана. Что-то вроде этого: https://gyazo.com/6e115bdca55aaecd70ebada7e046475d с тем, как квадратная часть становится толще.Как сгустить границу формы

Для того, чтобы сделать это мне нужна граница, которую я был в состоянии понять, как это сделать, делая это:

// Set paint to the random color 
g2.setPaint(getColor()); 
g2.fill(rectangle); 
// Set the border of shape to black 
g2.setPaint(Color.black); 
g2.draw(rectangle); 

Но теперь, когда я нажимаю на прямоугольнике, метод, который показывает выбор использует перевод все еще, и я получаю это: https://gyazo.com/07857f6782c3a32dc90946e79736374d, где только верх и левый толще.

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

Мой вопрос в том, как изменить толщину рамки на то, где вместо перевода фигуры я могу просто перерисовать фигуру с более толстой границей, чтобы показать выбор?

+1

Мы не можем пока вы не дадите нам больше информации о том, что вы используете для рисования. Создайте [MCVE] (http://stackoverflow.com/help/mcve), чтобы люди могли легко помочь вам, и они не пытаются понять тайну, которую имеет ваш вопрос. – StackFlowed

+1

Использование Graphics2D.setStroke для большего инсульта – ControlAltDel

ответ

1

Как уже говорилось, лучше всего, чтобы перерисовать с более толстой границы:

Graphics2D g2 = (Graphics2D) g; 
g2.setStroke(new BasicStroke(10)); 
g2.setPaint(Color.black); 
g2.draw(rectangle); 
Смежные вопросы