ドローエディタの説明


このドローエディタは、 こ こ にあったソースを自分なりに改造したものです。

使用方法は、 ここ を見てください。
プログラムの説明
プログラムは次のファイルからなります。

Main.java メインメソッドが入ったクラスや、コントロールボタン、パレット、 メニューバーのクラスを含む。
Shape.java すべての図形のスーパークラス。(abstract)
LineShape.java 直線を表すクラス。Observerインターフェースを実装。
RectangleShape.java 長方形を表すクラス。Observerインターフェースを実装。
OvalShape.java 楕円を表すクラス。Observerインターフェースを実装。
StringShape.java Stringを表すクラス。Observerインターフェースを実装。
ShapeMgr.java すべての図形と画面を管理する。Canvasクラスのサブクラス。
HotSpot.java HotSpot(図形についている灰色の点)を表すクラス。Observableクラスのサブ クラス。
HotSpotMgr.java すべてのHotSpotを管理するクラス。
Coordinates.java 座標を表すクラス。
Dimensions.java 寸法を表すクラス。(縦、横の長さ)
SaveWindow.java Saveするときのウインドウのクラス。ファイルにデータを書き込む。(アプレットにはなし)
LoadWindow.java Loadするときのウインドウのクラス。ファイルからデータを読み込む。(アプレットにはなし)
StringWindow.java Stringを生成するときのウインドウのクラス。


実行の流れ

●図形を新しく生成
  1. コントロールボタンが押されて、イベントが発生。 manageが呼ばれる。
  2. ShapeMgrは、新しい図形を登録し、それのHotSpotも HotSpotMgrに登録する。
  3. ShapeMgrはrepaintを呼ぶ。
  4. 各図形、HotSpotが自分自身を描く。


●図形の移動、変形、色の変更、消去、塗りつぶしの変更
  1. キャンバス上でマウスがクリック、 ドラッグ等されてイベントが発生。 まず、ShapeMgrはどのHotSpotが選択されたかをHotSpotMgrに聞く。
  2. 該当するHotSpotがあれば、必要があれば HotSpotのパラメータ(座標)を書き換えた上で、 変化が起こったことをセットし、(setChanged) 各図形(Observer)に、変化が起こったことを知らせる。(notifyObservers)
  3. 変化が起こった図形は、変化が伝えられるとupdateメソッドを 実行する。変化に応じて、自分のパラメータを変更する。
  4. ShapeMgrがrepaintを呼ぶ。
  5. 各図形、HotSpotは自分自身を描く。