• 締切済み

自作ドローエディタコンパイル不能

http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/252.java これをコンパイルしようとすると終盤でシンボルFigureTypeが見つけられないとでてしまいます どこを修正・追加すればコンパイル可能になるでしょうか 追加部分の詳細な場所とソースも書いてくださると嬉しいです

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.3

> Lineも他の図形と同様に > クリックした箇所を始点にドラッグしてクリックはなした場所まで > のラインになるようにするにはどこを変えればよいでしょうか? すでにご自分でおやりになったかもしれませんが、Lineのreshape()メソッドの中を次のように書き換えます。なお、weightとかheightの変数名も、Lineに関しては変えないとおかしいですね。 -------------------------------------  public void reshape(int x1,int y1,int x2,int y2) { /*   x = Math.min(x1, x2);   y = Math.min(y1, y2);   width = Math.abs(x1 - x2);   height = Math.abs(y1 - y2); */   x = x1;   y = y1;   width = x2;   height = y2;  } ------------------------------------

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

補記: 以下は、createFigure()メソッドのデバッグ結果です。LineFigureについては、なんかへんだなーと思いつつ、要求がよく分からないのでそのままにしてあります(reshape()も、Lineのはへんだけど…)。 ---------------------------------------  public void createFigure(int x,int y) {   Figure f;   switch(f_type){    case FigureType.RECTANGLE:     f = new RectangleFigure(x, y, 0, 0, currentColor);     break;    case FigureType.OVAL:     f = new OvalFigure(x, y, 0, 0, currentColor);     break;    case FigureType.LINE:     f = new LineFigure(x, y, x, y, currentColor);     break;    case FigureType.FILLRECT:     f = new FillRectFigure(x, y, 0, 0, currentColor);     break;    default:     f = new RectangleFigure(x, y, 0, 0, currentColor);     break;   }   figures.addElement(f);   drawingFigure = f;   drawPanel.repaint();  } ------------------------------

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

FigureTypeはほかのクラスの内部クラスなので、そのクラス名で修飾するか、またはFigureTypeを外に出して独立のクラスにしてください。 でも、こんな簡単な定数集は、 static enum FigureType{RECTANGLE, OVAL, LINE, FILLRECT}; で十分でしょうね。

ADY
質問者

お礼

ありがとうございました 言われましたとおりに独立にしましたらコンパイルできました そしてコンパイルしたのはいいのですが Lineだけ挙動がおかしくなっていました Lineも他の図形と同様に クリックした箇所を始点にドラッグしてクリックはなした場所までのラインになるようにするにはどこを変えればよいでしょうか? 変な箇所を中心に線が動くようになってしまいました