わかりました、なぜこれが機能しないのか本当にわかりません。
class SketcherModel extends Observable implements Iterable<Element>{
public Iterator<Element> iterator(){
return elements.iterator();
}
public LinkedList<Element> elements = new LinkedList<Element>();
}
Element
したがって、アプリケーションの「モデル」部分のクラスに LinkedList があります。以下のコードに示すように、アプリの「ビュー」部分がpaint()
メソッドを実行すると、リンクされたリストにアクセスし、そこに含まれるそれぞれを描画するという考え方です。Element
public class SketcherView extends JComponent implements Observer{
public SketcherView(Sketcher theApp){
this.theApp = theApp;
//Testing to see if I can access the linked list, 'elements', outside of the paint() method;
Element test = theApp.getModel().elements.iterator().next()
}
public void update(Observable o, Object rectangle){
//Code to respond to changes in model...
}
public void paint(Graphics g){
Graphics2D g2D = (Graphics2D)g;
for(Element element : theApp.getModel()){
element = (Element)elements.iterator().next();
g2D.setPaint(element.getColor());
g2D.draw(element.getShape());
}
}
クラスコンストラクターからリンクリストにアクセスするelements
と、問題なく見つかるようですが、コレクションベースの for ループをelements
使用してイテレーターを使用して実行すると、「要素を解決できません」と表示されます。何か不足していますか?