Javaプログラミング/Javaの基本

グラフィックを描画しよう(3ページ目)

AWTでは「Graphics」というクラスを使ってさまざまな図形を描画できます。このクラスの基本を覚えましょう。

執筆者:掌田 津耶乃

Colorと色の指定


簡単な図形は描画できるようになりましたが、何かが足りませんね。そう、それは「色」です。モノクロだけの表示ではどうも面白くありません。そこで、色をつけてみることにしましょう。先ほどのpaintメソッドを以下のように修正してみてください。

  public void paint(Graphics g){
    g.setColor(Color.RED);
    g.fillRect(0,50,300,200);
    g.setColor(Color.BLUE);
    g.drawRect(10,60,280,180);
    g.drawRect(20,70,260,160);
    g.setColor(Color.GREEN);
    g.fillOval(100,100,100,100);
  }
先ほどのサンプルに色をつけたもの。目がチカチカしますね……。


なんか、ものすごい色使いになってしまいましたが、あくまでサンプルということで我慢してください。ここでは「setColor」というものを使っていますね。これが、色を設定するためのメソッドです。Graphicsでは、「描画に用いる色」の情報というのを内部に保持しており、描画の際にはその色を使って図形を描きます。このsetColorは、描画用の色を変更する働きをするものです。

では、これで設定する色の値はどうするのでしょう。これは、java.awtパッケージに用意されている「Color」クラスを使います。これは色の値を示すために用意されたクラスで、このインスタンスをsetColorで設定すれば、好きな色に変更できるというわけです。

今回は「Color.RED」「Color.BLUE」「Color.GREEN」といったものが指定されていますね。これは、Colorクラスにあらかじめ用意されているフィールド(覚えてますか? クラスに用意されている、いつでも利用できる変数みたいなものでしたね)を指定していたのです。Colorクラスの中には、よく使われる色のインスタンスがフィールドとして用意されています。「Color.色の名前」というようにしてそれらのフィールド名を指定すれば、その色を使えるのですね。

もちろん、用意されているのは主な色だけですから、もっと微妙な色を使いたければ、新たにColorインスタンスを作って利用することになります。インスタンスは、newというものを使って作るのでしたね。Colorの場合は、このnewのときに、作成する色に関する設定値を引数に指定するのが一般的です。では、new Colorを使ったサンプルをあげておきましょう。

  public void paint(Graphics g){
    int x = 0;
    int y = 50;
    for (int i = 0;i < 10;i++){
      Color c = new Color(i * 25,0,250 - i * 25,100);
      g.setColor(c);
      g.fillRect(x,y,150,100);
      x += 15;
      y += 10;
    }
  }
Colorインスタンスを作って少しずつ色が変化するようにしたサンプルです。


paintメソッドを書き換えて実行してみて下さい。青から赤へとグラディエーションするように長方形が描かれていきます。ちょっとColorを使うだけで、こんなきれいな図形が作れてしまうんですね。ここでは、Colorの値をRGBAという4つの値で指定する形でインスタンス作成をしています。

Color 変数 = new Color(赤, 緑, 青);
Color 変数 = new Color(赤, 緑, 青,アルファ);

この2通りの書き方が、もっとも一般的でしょう。それぞれ赤・緑・青の3原色の輝度を0~255までの整数で指定します。0がなし、255が最大となります。「アルファ」というのはアルファチャンネルといって、色の透明度などを指定するのに用いられる値で、やはり0~255の整数で指定します。この値を設定すると半透明で図形を描くことができるようになります。

図形の描画は、実際に思う通りに描けるようになってくるとなかなか楽しいものです。サンプルのように、繰り返しなどを使って計算によって図形を描かせたりすると、想像もしてなかったような効果を得られることもあります。それぞれで試してみると面白いでしょう。

バックナンバー

はじめてのJava(1)「Javaを手に入れよう」
はじめてのJava(2)「環境変数をマスターする」
はじめてのJava(3)「Javaのプログラムを動かそう」
はじめてのJava(4)「mainメソッドを使おう」
はじめてのJava(5)「制御文を使おう」
はじめてのJava(6)「クラスとインスタンスをマスターしよう」
はじめてのJava(7)「AWTのコンポーネントを使おう」
はじめてのJava(8)「イベント処理の仕組みを理解する」
はじめてのJava(9)「アプリケーションを作ろう」
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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