Javaプログラミング/サーバサイド&ケータイJava

Canvasクラスで図形を描画する

今回は、グラフィックを利用するためのコンポーネント「Canvas」を使って描画を行いましょう。

執筆者:掌田 津耶乃

Canvasについて


Panelを使ったiアプリは、基本的に「コンポーネントを組み合わせて画面を作る」というものでした。が、実際にはこうしたiアプリはそれほど多くはないでしょう。特にエンターテイメント系のものは、グラフィックを中心とした表示が多いはずです。

こうしたグラフィックを使って表示を作るタイプのものでは、Panelは使いません。「Canvas」と呼ばれるコンポーネントを使います。Java SEのAWTにもCanvasクラスはありましたが、こちらはそれとは違うcom.nttdocomo.uiパッケージのCanvasです。

このCanvasには、AWTと同様にpaintメソッドが用意されており、これをオーバーライドして描画のための処理を作成します。このメソッドは引数にGraphicsインスタンスが渡されますので、このGraphics内のメソッドを呼び出して描画を行うことができます。基本的な描画の方法は、AWTと非常に似ていますね。ただし、まったく同じではありません。この点、注意が必要です。

では、簡単なサンプルを作成してみましょう。SampleIAppアプリケーションクラスから、MainCanvasというCanvasクラスを利用して画面表示をするサンプルを考えてみることにしましょう。

import com.nttdocomo.ui.*;

public class SampleIApp extends IApplication {

  public void start() {
    Display.setCurrent(new MainCanvas(this));
  }
}

class MainCanvas extends Canvas {
  IApplication iapp;
  
  MainCanvas(IApplication app){
    super();
    this.iapp = app;
  }
  
  public void paint(Graphics g) {
    g.setColor(Graphics.getColorOfRGB(0, 0, 255));
    g.fillRect(10, 10, 100, 100);
    g.setColor(Graphics.getColorOfRGB(255, 0, 0));
    g.fillArc(50, 50, 100, 100, 0, 360);
    g.setColor(Graphics.getColorOfRGB(0, 255, 0));
    g.setFont(Font.getFont(Font.SIZE_MEDIUM));
    g.drawString("This is Canvas", 10, 150);
  }
}



  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます