2015-05-12 4 views
0

У меня возникла следующая проблема: я хочу создать новый BasicStroke и установить его на объекте Graphics2D. Это код, который я написал для этой проблемы:Как сделать .setStroke (BasicStroke)?

BasicStroke stil = new BasicStroke(zo.getLinienbreite(), 
     BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER); 
    g2d.setStroke(stil); 

Но рядом с ошибкой, конструктор BasicStroke (поплавок, Int, Int) не определено (который на самом деле нет, если я читаю документацию справа), он говорит, что «Метод setStroke (Stroke) в типе Graphics2D не применим для аргументов (BasicStroke)».

+0

Что такое 'zo.getLinienbreite()' и почему вы передаете это в конструктор BasicStroke? –

+0

2) У вас есть собственный класс с именем 'BasicStroke' где-нибудь рядом с этим классом? –

+0

zo.getLinienbreite() - это метод объекта zo, который возвращает ширину линии, поэтому BasicStroke знает, как должна быть ширина линии. У меня нет другого BasicStroke рядом с этим классом, это на самом деле моя первая и единственная попытка с Strokes. –

ответ

0

Один из BasicStroke constructors принимает поплавок и два входа. Я предполагаю, что zo.getLinienbreite() не поплавок, так что вам придется либо явно привести его

BasicStroke stil = new BasicStroke((float)zo.getLinienbreite(), ... 

или изменить его плавать в классе zo «s. Как только это будет сделано, следующая ошибка исчезнет.

Cheers,

+0

Извините, но zo.getLinienbreite() - это поплавок. Eclipse также сообщает мне, что BasicStroke (float, int, int) не определен. Вот почему мне интересно. И даже если я использую другой конструктор g2d.setStroke (stil); не работает. –

+0

Вы используете какую-то странную/старую версию JDK? Нам нужна дополнительная информация, чтобы помочь. –

-1

Благодарим за помощь. Оказывается, я использовал com.sun.prism.BasicStroke вместо импорта java.awt.BasicStroke. Еще раз спасибо!