magazine.gif Java GUIプログラミング vol.2 Java SE 6対応

まえがき

第1章 JTextFieldとJTextArea

  • 1-1 JTextFieldの基本
  • 1-2 パスワードフィールド
  • 1-3 JTextFieldとActionイベント
  • 1-4 入力フィールドに対する入力制限(1)~Keyイベントによるもの
    • 数値だけを入力できる入力フィールド
    • 指定桁数だけ入力できる入力フィールド
  • 1-5 入力フィールドに対する入力制限(2)~ドキュメントインタフェースによるもの
    • Documentインタフェース
    • 数値だけを入力させるドキュメントクラス
    • 指定桁数だけ入力させるドキュメントクラス
    • ドキュメントクラスを使うことの利点
  • 1-6 JTextArea
  • 1-7 メモ帳
    • Actionクラスの作成とメニューへの登録
    • ファイル読み込み機能
    • ファイル保存機能
    • 編集コマンド

第2章 コンボボックス

  • 2-1 コンボボックスの基本
    • JComboBox初期化(1)
    • JComboBox初期化(2)
    • 入力フィールドでの編集を可能にする
    • 入力フィールドにアクセスする
  • 2-2 選択された項目を調べるItemイベント
    • Itemイベントの基本
    • 入力フィールドにアクセスする
  • 2-3 選択された項目を調べるActionイベント
    • ActionListenerをJComboBoxにセットする
    • JComboBoxにActionクラスをセットする
  • 2-4 JComboBoxのポップアップに関するイベント
    • PopupMenuListenerとPopupMenuEvent
    • HTML文字列を使用した場合の問題に対処する
  • 2-5 プログラム内部から選択する
    • インデックス番号により選択状態にする
    • 項目名の指定により選択状態にする
  • 2-6 追加、挿入、削除ができるようにする
    • 項目の追加、挿入、削除
    • ComboBoxModelを使う
  • 2-7 独自の項目表示処理を定義するListCellRenderer
    • ListCellRendererクラス

第3章 JDesktopPaneとJInternalFrame

  • 3-1 JDesktopPaneとJInternalFrameの紹介
    • プラットフォーム非依存のSwingコンポーネント
    • トップレベルウィンドウだけは例外
    • JDesktopPane(デスクトップペイン)
    • JInternalFrame(インターナルフレーム)
  • 3-2 JInternalFrameの初歩
    • JDesktopPane
    • JInternalFrame
    • JInternalFrameを操作する
  • 3-3 JInternalFrameのフレーム属性の設定
  • 3-4 レイヤー
    • レイヤー番号
  • 3-5 FocusEventとMouseEventとKeyEvent
    • JInternalFrameへのマウスイベントの通知
    • インターナルフレームにフォーカスを移してKeyEventを処理できるようにする
  • 3-6 レイヤーを変更する
    • レイヤー番号を設定する
  • 3-7 JInternalFrameのウィンドウイベント
    • InternalFrameEvent
    • InternalFrameListenerのメソッド
  • 3-8 インターナルフレームの状態変化を検知する
    • デスクトップマネージャー
    • デスクトップマネージャーインタフェースのメソッド
    • JInternalFrameオブジェクトとJDesktopIconオブジェクトを区別する
  • 3-9 JInternalFrameでお絵描き
  • 3-10 WindowListを作成する(1)
  • 3-11 WindowListを作成する(2)
  • 3-12 WindowListを作成する(3)
    • インターナルフレームの状態も表示する
    • インターナルフレームを操作する

第4章 JTree

  • 4-1 JTreeの紹介
    • JTreeの最も簡単な初期化
    • DefaultTreeModelとDefaultMutableTreeNode
    • 子ノードを列挙する
    • DefaultMutableTreeNodeによってノードを生成し、親子関係を構築する
  • 4-2 TreePathとロー
    • JTreeを展開し、すべてのノードが表示されるようにする
    • TreePathクラスからノードを得る
    • ノードからTreePathおよびロー番号を得る
    • 便利なクラスJTreeModel.java
  • 4-3 JTreeのノードを辿る
    • DefaultMutableTreeNodeが持っているノードを辿るメソッド
    • getNextNodeとpreorderEnumeration(1)
    • getNextNodeとpreorderEnumeration(2)
    • getPreviousNode
    • breadthFirstEnumeration
    • depthFirstEnumerationとpostorderEnumeration
    • getNextLeafとgetPreviousLeaf
  • 4-4 ノードを選択状態にする
    • ノード名からTreePathを得て、ノードを選択する
    • 指定したノード名のノードを選択する
    • 連続で複数選択する
    • 隣接していない複数を選択する
  • 4-5 ノードを名前で検索する
  • 4-6 TreeSelectionEventとTreeSelectionListene
    • 単独選択する場合のTreeSelectionEvent
    • 隣接する複数を選択する場合のTreeSelectionEvent
    • 隣接していない複数を選択する場合のTreeSelectionEvent
  • 4-7 JTreeとマウスイベント
    • ピクセル座標からTreePathおよびRowへの変換
  • 4-8 TreeExpansionEvent、TreeExpansionListener
  • 4-9 TreeWillExpandListener、ExpandVetoException
  • 4-10 TreeCellRenderer
    • アイコンや表示色を変化させる
    • getTreeCellRendererComponent()
    • カスタムノードをTreeCellRendererで表示する

第5章 JTable

  • 5-1 JTableとJTableHeader
    • 最も単純なJTableの初期化
    • JTableHeaderを表示する
    • JScrollPaneの中にJTableを入れる
  • 5-2 横スクロール
    • デフォルトでは横スクロールバーがつかない
    • AUTO_RESIZE_OFFを指定する
    • JTableのメソッドをオーバーライドして横スクロールを可能にする
  • 5-3 カラム名
    • TableColumn
    • カラム番号で指定する
    • DefaultTableColumnModel
  • 5-4 カラムサイズ
    • setWidth()
    • setMinWidth()
    • setMaxWidth()
  • 5-5 JTableにデータを入れる 〜配列から
  • 5-6 TableModelの最も基本的な使用法~AbstractTableModel
    • TableModel
    • AbstractTableModelに必要なメソッド
    • AbstractTableModelおためのメソッド定義
  • 5-7 画像をセル内に貼りつける
    • データ配列内のImageIconオブジェクト
    • ローの高さの設定
    • 実行時のユーザーによるカラム幅変更
  • 5-8 JTableにデータを追加するDefaultTableModel(1)
    • DefaultTableModel
    • DefaultTableModelのコンストラクタ
    • 実行時にローを追加する
  • 5-9 JTableにデータを追加するDefaultTableModel(2)
    • DefaultTableModelを継承したクラスを作る
    • カラムのデータのクラス名を問い合わせる
  • 5-10 ファイルからデータを読み込む
    • ファイルからの読み込み
    • JTableに入れるローのデータを作成する
    • 画像データを追加する
    • JTableにデータを追加する
    • isCellEditable()メソッド

第6章 JTableでの選択とカーソル移動

  • 6-1 JTable上での選択を検出するMouseEvent
    • 現在選択されているローとカラムを調べる
    • マウスの位置から、そこに対応するローとカラムを調べる
    • セルの位置を調べる
    • セル間のスペース
  • 6-2 ローの選択を検出する valueChanged()
    • JTableは、ListSelectionEventを処理する
    • ローの複数選択DefaultListSelectionModel
  • 6-3 カラムの選択を検出するcolumnSelectionChanged()
    • 選択表示モードの変更
  • 6-4 ローとカラムの選択を検出する
  • 6-5 ローとカラムの複数選択
  • 6-6 プログラムの内部から選択する~ローの選択
    • ロー用のListSelectionModelを操作する
  • 6-7 プログラムの内部から選択する~カラムの選択
    • カラム用のListSelectionModelを操作する
  • 6-8 セルの選択~マウスクリックの場合のさまざまなイベント処理
    • セルをクリックした場合、各メソッドが呼び出される順序
  • 6-9 セルの選択~カーソルキー指定の場合のさまざまなイベント処理
    • カーソルキーを押したときに、各メソッドが呼び出される順序
  • 6-10 JTable上でのカーソル移動をカスタマイズする
    • 復帰改行を行えるようにする
    • 4方向のカーソルキーによるフォーカス移動をカスタマイズする
    • 自動スクロール

第7章 JTableにおけるデータ操作

  • 7-1 ローの削除と挿入
  • 7-2 ローとカラムの変更に関連したイベント
    • TableModelEventとTableModelListener
    • TableColumnModelEventとTableColumnModelListener
  • 7-3 ローの移動
    • マウスポインタの形状の変更
  • 7-4 カラムの追加 〜カラム単位でデータを入れる
    • カラムを追加する
    • getColumnCkass(int)メソッド
  • 7-5 カラムを最右列に追加
  • 7-6 カラムの移動
    • ユーザの操作によってカラムを移動したことを検出する
    • プログラム内部からのカラムの移動
  • 7-7 カラムの削除
  • 7-8 カラムごとの属性 TableColumn
  • 7-9 選択されているセルからデータを取り出す
  • 7-10 セルのデータをクリップボードにコピーする
    • getValueAt()
  • 7-11 クリップボードからデータを取り出し、セルにセットする
    • setValueAt()

第8章 TableCellRenderer

  • 8-1 TableCellRendererの紹介
    • セルレンダラーの関連付け
    • getTableCellRendererComponent()
    • セルレンダラーが呼び出されるタイミング
  • 8-2 行番号をつける
  • 8-3 列名を決め直すヘッダレンダラー
  • 8-4 セルの文字列の表示のカスタマイズを行う
  • 8-5 商品マスターを使った商品コードから商品名への変換
  • 8-6 商品コードから単価を求める
  • 8-7 ツールチップ
  • 8-8 カラムのクラスを指定する
    • ImageIcon型のカラム

第9章 TableCellEditor

  • 9-1 JTextFieldタイプのセルエディタ
  • 9-2 編集終了のタイミングを知る
    • JTableのeditingStopped()のオーバーライド
    • TableCellEditorのクラスに、CellEditorListenerを設定する
  • 9-3 セルの編集中に、他のコンポーネントにフォーカスが移ってしまうとき
    • 現在有効なセルエディタを取得し、編集中のセルの値を確定する
    • フォーカスの移動先や移動元を取得する
  • 9-4 JComboBoxタイプのセルエディタ
    • コンボボックスで新規の値も入力できるようにする
  • 9-5 セルエディタと他のセルとを連動させる
    • コンボボックスの項目から選択する
  • 9-6 JCheckBoxタイプのテーブルセルエディタ
    • JCheckBoxタイプのセルエディタ
    • カラムにBoolean型を設定する
  • 9-7 JListをセルエディタにする
    • 単純なJListセルエディタ
    • 少し改良したJListセルエディタ
  • 9-8 任意のセルに任意のコンポーネントを置いて機能させる
    • 任意のセルに任意のコンポーネントを置くことを実現する方法の概要
    • JTable2をテストするサンプルプログラム

第10章 JTableのカスタマイズ

  • 10-1 JTableでのソートとフィルタリング
    • SortableTableModelクラス
    • SortableTableModelをテストする
    • 新たに追加されたソートを行う方法
    • TableRowSorterクラスを使ってソートする
    • フィルタリングをする
  • 10-2 セルに任意のコンポーネントを置く(JTable2)
    • JTable2クラス
    • JTable2のテスト
  • 10-3 テーブル上のマウスイベントのカスタマイズ(JTable3)
    • セルに置いたコンポーネントの視聴覚効果の改善
    • JTable3クラス
    • JTable3をテストする
    • JTable2とJTable3との比較
    • JTable3によるWindowsルックアンドフィールでのロールオーバー表示
  • 10-4 セルのマージを可能にする(JTable4)
    • セルのマージ
    • マルチセル
    • JTable4クラス
    • MergeableTableModelクラス
    • Multicellクラス
    • Filterクラス
    • MergeableTableUIクラス
    • 再表示処理中に変更が必要な箇所
  • 10-5 セルのマージ可能なテーブル(JTable4)をテストする
  • 10-6 JTableの印刷
    • 印刷ダイアログ
    • JTable4の印刷機能
  • 10-7 横に長いテーブルの印刷
    • プリントモード
  • 10-8 JTableを利用したテキストファイル印刷ツール

さくいん