標準プログラマーズ ライブラリシリーズJava グラフィクス完全制覇

[表紙]Java グラフィクス完全制覇

紙版発売

B5変形判/352ページ

定価2,508円(本体2,280円+税10%)

ISBN 4-7741-1348-4

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

Java APIだけでグラフィクスを作成しようとすると,ソースコードは恐ろしく長大になります。本書ではコンパクトなプログラムを実現するオリジナルクラスライブラリの活用法を解説します。

こんな方におすすめ

  • GUIプログラムを作りながらJavaを覚えたい方
  • GUIプログラムを作りたいJava初心者の方

目次

  • Java Graphics Works
  • はじめに
  • 本書について

Chapter 1 Javaの概要

  • 1.1 C,C++,Java
    • 1.1.1 C++の歴史的事情
    • 1.1.2 簡潔なJavaの文法
    • 1.1.3 C++とJavaが棲み分ける時
  • 1.2 Java〜インターネット時代のプログラミング言語
    • 1.2.1 インターネットとJava
    • 1.2.2 Javaの動作原理
    • 1.2.3 アプレットとアプリケーション
  • 1.3 JDKとJava API
    • 1.3.1 JDK
    • 1.3.2 Java API

Chapter 2 Javaプログラムの基本構造

  • 2.1 クラスとパッケージ
    • 2.1.1 はじめてのJavaプログラム
    • 2.1.2 コメント
    • 2.1.3 パッケージ
  •  Column:パッケージを作る&実行する
    • 2.1.4 クラスのインポート
    • 2.1.5 クラスとファイル
    • 2.1.6 クラスの定義
    • 2.1.7 そもそもJavaのアプリケーションプログラムとは
  • 2.2 クラスの継承
    • 2.2.1 1つのファイルに2つのクラスを定義する
    • 2.2.2 クラスの継承
  • 2.3 mainメソッド
    • 2.3.1 コンストラクタとmainメソッドを同じクラスで定義する
    • 2.3.2 staticの意味
  • 2.4 イベント処理の基本
    • 2.4.1 ボタンの生成
    • 2.4.2 ボタンのクリックに応答する
    • 2.4.3 イベントドリブン

Chapter 3 Swingコンポーネントとイベント処理

  • 3.1 Javaクラスライブラリ
    • 3.1.1 java.langパッケージ
    • 3.1.2 java.awtパッケージ
    • 3.1.3 java.awt.eventパッケージ
    • 3.1.4 java.utilパッケージ
    • 3.1.5 javax.swingパッケージ
  • 3.2 いろいろなSwingコンポーネント
    • 3.2.1 ラベル
    • 3.2.2 ボタン
    • 3.2.3 リスト
    • 3.2.4 テキストフィールド
    • 3.2.5 コンボボックス
  • 3.3 Swingコンポーネントの表示
    • 3.3.1 コンテナ
    • 3.3.2 レイアウトポリシー
    • 3.3.3 プログラムの具体例
  • 3.4 イベント処理
    • 3.4.1 Windowsプログラムとは
    • 3.4.2 アクションとイベント
    • 3.4.3 リスナ
    • 3.4.4 イベント処理メソッド
    • 3.4.5 イベントの検出
  • 3.5 アダプタクラス
    • 3.5.1 アダプタクラスの継承
    • 3.5.2 インナークラス
  • 3.6 サンプルプログラム
    • 3.6.1 プログラムP0301:イベント処理
    • 3.6.2 プログラムP0302:イベント処理(2)
    • 3.6.3 プログラムP0303:コンボボックス

Chapter 4 Java 2とグラフィクス

  • 4.1 Javaとカラー
    • 4.1.1 Colorオブジェクト
    • 4.1.2 Javaのデフォルトカラー
    • 4.1.3 解像度との相関
    • 4.1.4 バックグラウンドカラーと描画カラー
    • 4.2 GraphicsとGraphics 2D
    • 4.2.1 デバイスコンテキスト
    • 4.2.2 paintメソッドの引数
    • 4.2.3 getGraphicsメソッドの戻り値
  • 4.3 Java 2の描画メソッド
    • 4.3.1 JDK 1.1とJava 2の違い
    • 4.3.2 楕円フィルメソッドのユーザ定義
    • 4.3.3 Windowsにおける描画の注意点
  • 4.4 サンプルプログラム
    • 4.4.1 プログラムP0401:デフォルトカラー
    • 4.4.2 プログラムP0402:文字列の表示
    • 4.4.3 プログラムP0403:幾何学模様

Chapter 5 メニューとダイアログボックス

  • 5.1 メニュー
    • 5.1.1 メニューバー/メニュー/メニューアイテム
    • 5.1.2 メニューによるイベント処理
  • 5.2 ダイアログボックス
    • 5.2.1 インナークラスによるダイアログボックスの定義
    • 5.2.2 ダイアログボックスの生成
  • 5.3 サンプルプログラム
    • 5.3.1 プログラムP0501:いろいろな楕円を描く

Chapter 6 アニメーション

  • 6.1 Javaとアニメーション
    • 6.1.1 アニメーションの技法
    • 6.1.2 ちらつきの原因
    • 6.1.3 ちらつきのないアニメーション
  • 6.2 マルチスレッド
    • 6.2.1 中断できるアニメーション
    • 6.2.2 マルチスレッドとは
    • 6.2.3 RunnableインターフェースとThreadクラ
  • 6.3 アニメーションプログラムの基本構造
  • 6.4 ダブルバッファ
    • 6.4.1 オフスクリーンへの描画
  • 6.5 サンプルプログラム
    • 6.5.1 プログラムP0601:ネオン
    • 6.5.2 プログラムP0602:時計

Chapter 7 Javaグラフィックライブラリ

  • 7.1 グラフィックライブラリの概要
    • 7.1.1 なぜクラスライブラリを作るのか
    • 7.1.2 クラスと階層図
    • 7.1.3 3つの継承系列
  • 7.2 16色カラーモードと240色カラースペクトル
    • 7.2.1 DOS風の16色カラーモード
    • 7.2.2 なめらかな色のグラデーション
  • 7.3 システム座標系とユーティリティ座標系
    • 7.3.1 システム座標系
    • 7.3.2 ユーティリティ座標系
  • 7.4 Graphics2Dオブジェクトの取得
    • 7.4.1 なぜ継承ではないのか
    • 7.4.2 GraphicsとGraphics2Dは抽象クラス

Chapter 8 平面上のグラフィクス

  • 8.1 xFrameクラス
  • 8.2 xColorクラス
  • 8.3 xGraphicsクラス
    • 8.3.1 ユーティリティ座標系の設定
    • 8.3.2 描画用のユーザ定義メソッド
  • 8.4 サンプルプログラム
    • 8.4.1 プログラムP0801:文字列の表示
    • 8.4.2 プログラムP0802:幾何学模様
    • 8.4.3 プログラムP0803:リング状の陰影スペクトル

Chapter 9 座標クラスと座標演算メソッド

  • 9.1 xPointDクラス
  • 9.2 xPointD3クラス
  • 9.3 xMathクラス
  • 9.4 サンプルプログラム
    • 9.4.1 プログラムP0901:花を散りばめる
    • 9.4.2 プログラムP0902:ありえない図形
    • 9.4.3 プログラムP0903:シェルピンスキーのギャスケット

Chapter 10 タートルグラフィクス

  • 10.1 カメの動きをまねる
    • 10.1.1 カメとともに移動するXY座標系
    • 10.1.2 タートルグラフィクスの基本操作
  • 10.2 xTurtleクラス
  • 10.3 再帰呼び出し
    • 10.3.1 再帰次数の上限を指定する
    • 10.3.2 長さの下限を指定する
  • 10.4 再帰図形とフラクタル
    • 10.4.1 樹木曲線
    • 10.4.2 シェルピンスキーのギャスケット
    • 10.4.3 自己相似性とフラクタル
  • 10.5 サンプルプログラム
    • 10.5.1 プログラムP1001:星型正5角形による再帰図形
    • 10.5.2 プログラムP1002:シダの葉
    • 10.5.3 プログラムP1003:シェルピンスキーのギャスケット

Chapter11 風景を描く

  • 11.1 paintメソッドの効用
    • 11.1.1 paintメソッド
    • 11.1.2 ボタンを使わずに描画を開始するには
    • 11.1.3 repaintメソッドとupdateメソッド
    • 11.2 サンプルプログラム
    • 11.2.1 プログラムP1101:街路樹
    • 11.2.2 プログラムP1102:湖
    • 11.2.3 プログラムP1103:冬景色

Chapter 12 3次元グラフィクス〜多面体

  • 12.1 3次元グラフィクスの基礎
    • 12.1.1 座標系
    • 12.1.2 投影図法と透視図法
  • 12.2 xGraphics3Dクラス
  • 12.3 正多面体
  • 12.4 正多面体クラス
  • 12.5 法線ベクトルによる判定法と深度ソート法
    • 12.5.1 法線ベクトルによる判定法
    • 12.5.2 深度ソート法
  • 12.6 多面体の陰影表示
  • 12.7 サンプルプログラム
    • 12.7.1 プログラムP1201:正多面体
    • 12.7.2 プログラムP1202:クリスタルボール
    • 12.7.3 プログラムP1203:凹24面体

Chapter 13 3次元グラフィクス〜曲面

  • 13.1 曲面の方程式
    • 13.1.1 陽関数表示
    • 13.1.2 陰関数表示
  • 13.2 最大最小法
    • 13.2.1 最大最小法による陰面消去
  • 13.3 曲面の陰影表示
  • 13.4 Zバッファ法
    • 13.4.1 Zバッファ法による陰面消去
    • 13.4.2 媒介変数表示
    • 13.4.3 回転体
    • 13.4.4 曲座標
    • 13.5 xTimerクラス
    • 13.6 サンプルプログラム
    • 13.6.1 プログラムP1301:曲面(最大最小法)
    • 13.6.2 プログラムP1302:曲面(陰影表示)
    • 13.6.3 プログラムP1303:トーラス(Zバッファ法)

Chapter 14 3次元タートルグラフィクス

  • 14.1 スペースシャトルを操縦する
    • 14.1.1 空間を移動するXYZ座標
    • 14.1.2 右手系と左手系
    • 14.1.3 3次元タートルグラフィクスの基本操作
  • 14.2 xTurtle3Dクラス
  • 14.3 3次元樹木曲線
    • 14.3.1 座標軸の設定
    • 14.3.2 樹木曲線の描画
  • 14.4 サンプルプログラム
    • 14.4.1 プログラムP1401:正8面体による3次元再帰図形
    • 14.4.2 プログラムP1402:立方体による3次元フラクタル図形
    • 14.4.3 プログラムP1403:3次元のシダ

Chapter 15 回転する立体

  • 15.1 サンプルプログラム
    • 15.1.1 プログラムP1501:回転する正多面体
    • 15.1.2 プログラムP1502:回転するクリスタルボール

Chapter 16 複素数の世界

  • 16.1 コンピュータと数学
  • 16.2 xComplexクラス
  • 16.2.1 複素数
  • 16.3 xMathCクラス
  • 16.4 マンデルブロ集合とジュリア集合
    • 16.4.1 マンデルブロ集合
    • 16.4.2 ジュリア集合
    • 16.5 サンプルプログラム
    • 16.5.1 プログラムP1601:マンデルブロ集合
    • 16.5.2 プログラムP1602:ジュリア集合

Chapter 17 Webページ上のアプレット

  • 17.1 HTMLとアプレット
    • 17.1.1 Webページとアニメーション
    • 17.1.2 アプレット表示用のHTMLファイル
  • 17.2 アプレットにおけるアニメーション
    • 17.2.1 アプリケーションとの違い
    • 17.2.2 initメソッド
    • 17.2.3 その他の変更点
  • 17.3 xAppletクラス
  • 17.4 サンプルプログラム

Appendix 本書で使用するJavaグラフィックライブラリ

  • フレームクラス:xFrame.java
  • カラークラス:xColor.java
  • グラフィクスクラス:xGraphics.java
  • 2次元座標クラス:xPointD.java
  • 3次元座標クラス:xPoint3D.java
  • 座標演算クラス:xMath.java
  • タートルグラフィクスクラス:xTurtle.java
  • 3次元グラフィクスクラス:xGraphics3D.java
  • 正多面体クラス:xRPh.java
  • 正4面体クラス:xRPh4.java
  • 立方体クラス(1):xRPh6.java
  • 立方体クラス(2):xRPh6V.java
  • 正8面体クラス:xRPh8.java
  • 正12面体クラス:xRPh12.java
  • 正20面体クラス:xRPh20.java
  • タイマークラス:xTimer.java
  • 3次元タートルグラフィクスクラス:xTurtle3D.java
  • 複素数クラス:xComplex.java
  • 複素数演算クラス:xMathC.java
  • アプレットクラス:xApplet.java
  • 参考文献
  • Index