SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Java Graphicsを使ってかんたんプリント

JavaプログラムにAWTとJPSで印刷機能を実装する

  • X ポスト
  • このエントリーをはてなブックマークに追加

本稿ではAWTやJPSを利用して、Javaプログラミングに印刷機能を実装する手順を説明します。Graphicsオブジェクトを使うことによって、以外に簡単にプリンタ出力が実現できます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 紙ベースで情報をやりとりする必然性が減ってきたとはいえ、印刷機能はまだまだ業務的なニーズのある領域だと思います。JavaではGraphicsオブジェクトを使用することで、画面への描画と同じように印刷機能を実装することができます。これらは最新技術ではありませんがその面白さを知ってもらえればと思います。

Java Graphics

 印刷機能を説明する前にJavaのグラフィックス描画について簡単に説明します。Java Graphicsはユーザが出力先デバイスに対して描画を行うための「ペン」のような機能を提供します。以下のサンプルコードを見てください。

RoundDrwa.java
/**
* 複数の楕円を描画するクラス
*/
public class RoundDraw { private int width; private int height; //・・・中略・・・ public void draw(Graphics g){ g.setColor(Color.WHITE); //ペン先の色を白に g.fillRect(0, 0, width, height); //四角領域を塗りつぶす g.setColor(Color.BLUE); //ペン先の色を青に for (int x = 0; x < width; x +=10){ g.drawOval(x, 0, width - 2 * x, height); //楕円を描画 } for (int y = 0; y < height; y += 10){ g.drawOval(0, y, width, height - 2 * y); //楕円を描画 } } }

 サンプルのRoundDrawクラスは幅と高さを指定することで、その領域にたくさんの楕円を描画するためのクラスです。drawメソッドで描画処理を実装しています。setColorでペン先の色を決定し、fillRectで矩形領域を塗りつぶします。drawOvalは楕円形を描画するメソッドです。

 このRoundDrawクラスを内包したSwingコンポーネントを作成し、JFrameで動作確認します。JFrameウィンドウ上にたくさんの楕円形が描かれたグラフィックスが描画されました。

JFrameでGraphics描画を確認
JFrameでGraphics描画を確認

印刷機能の実装方法

 さて、Graphicsという「ペン」を使うことにより、画面に対して自由な描画ができることを確認しました。紙に印刷する場合でも基本的に要領は同じです。

 Javaでの印刷機能の実装には2種類の方法があります。1つはAWT Printで、もう1つはJPS(Java Print Service)です。JPSはJava 1.4から追加された新しいAPIです。JPSの方が細かい指定ができるのですが、AWT Printの方が適しているケースもあります。では、それぞれについて紹介していきます。

次のページ
AWT Print

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

佐々木孝(ササキタカシ)

Javaをメインに業務システムの開発サポート、パッケージ開発、および技術研究をしています。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2468 2008/09/05 11:18

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング