Top / PixelDrawing / 2006-11-01

Swing

Swingと組み合わせて使えるように整備しました。

PixelDrawing-20061101-3.png
  • 開発環境: NetBeans

実装

確認のための操作やパラメータ表示などは外に出してSwingで確認すれば良いので、Swingと組み合わせて使えるようにしました。

  • 上のスクリーンショットのステータスバーがSwingです。
  • Swing部分のデザインはNetBeansで行いました。非常に楽です。

受け皿

PixelBufferの受け皿を用意しました。

  1. PixelComponent
    • バッファとして内部でPixelBufferを保持します。
    • イベントなどを下層の実装(この場合はSwing)から抽象化したものです。独自の流儀でイベントを処理しています。
    • PixelDrawingでGUI部品を開発するときは、PixelComponentを継承して拡張します。
  2. PixelPanel
    • Swing側に配置してPixelComponentと接続します。
    • 受け皿のため、基本的にPixelPanelは継承しません。

validate

表示する直前にバッファを作るためContainer#validateを利用しました。手探りのため試行錯誤しました。詳しいことは開発日記に書きました。

PixelEvent

Swing関連の処理はPixelDrawingの外に出したかったため、リフレクションを使った委譲を実装しました。詳しいことは開発日記に書きました。

委譲を管理するためのクラスとしてPixelEventを用意しました。C#のeventに相当する機能を提供します。

使用例

public class Test {
  public Test() {
    PixelEvent e = new PixelEvent();
    e.add(this, "myEvent1");
    e.add(this, "myEvent2");
    e.invoke(this, null);
  }

  private void myEvent1(Object sender, Object data) {
    System.out.println("myEvent1");
  }

  private void myEvent2(Object sender, Object data) {
    System.out.println("myEvent2");
  }
}

コメント


添付ファイル: filePixelDrawing-20061101-3.png 171件 [詳細] filePixelDrawing-20061101-3.zip 286件 [詳細] filePixelDrawing-20061101-2.zip 173件 [詳細] filePixelDrawing-20061101.zip 188件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-11-13 (月) 12:12:57 (6375d)