Итак, у меня есть класс, который я построил с помощью цикла.В конструкторе у меня есть два цикла while, которые составляют «сетку» окружностей.Это должен быть шарф для класса, но я называю это кольчугой, потому что это звучит круче.В любом случае мы должны иметь возможность изменить цвет шарфа с помощью другого (клиентского) класса.Очевидно, мне нужно добавить метод мутатора, чтобы изменить цвет.К счастью, в objectdraw для этого есть мутатор setColor ().Он работает просто отлично, за исключением того, что когда я пытаюсь добавить его в этот класс, он меняет только последний круг в сетке.Я знаю, почему это происходит, но я не знаю, как это исправить.Я прокомментировал «типичного» мутатора, который мы использовали в классе.
РЕДАКТИРОВАТЬ: Извините за недоразумения, ребята ... это просто класс, у меня есть клиент, который вызывает новую ChainMail (), а затем выполняет .setColor () на нем, но он только изменяет последний framedovalвместо всех них.Вот в чем проблема
import objectdraw.*;
import java.awt.*;
public class ChainMail {
private FramedOval link;
public ChainMail(int rows,int links,
Location p,Color rgb,
DrawingCanvas c) {
double numRows = 0;
// create the number of rows specified
while (numRows < rows) {
double numLinks = 0;
// create the number of links specified
while (numLinks < links) {
link = new FramedOval(p,12,12,c);
link.setColor(rgb);
// update the position
p.translate(8,0);
numLinks++;
}
// move position back to front col and down one row
p.translate(-8*links,8);
numRows++;
}
}
public ChainMail(int rows,int links,Location p,DrawingCanvas c) {
this(rows,links,p,Color.BLACK,c);
}
/* this doesn't work, only changes last circle
* public void setColor(Color c) {
* link.setColor(c);
* }
*/
}