Java/Swingについて+ (4) 2005年10月26日 海谷 治彦.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

Ver 準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
         第9回 Swing.
Javaにおける入出力とXML 2011年5月15日 海谷 治彦.
~手続き指向からオブジェクト指向へ(Ⅰ)~
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
プログラミング基礎I(再) 山元進.
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
プログラミング演習3 第4回 ミニプロジェクト.
Javaレクチャー ーSwing入門ー.
第14回 GUIの構成とイベント・ドリブン ~GUIを使ったプログラム(Ⅰ)~.
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
3-3 クラス図の関係その2.
クラス図(1) 後半 FM13010 村上 太一.
システムエンジニアリング演習 GUIの実現(3):Swing 11月20日.
社会人学習講座 「Javaプログラミング概論」
JavaBeans とJSP データベース論 第5回.
JSFによるWebアプリケーション開発 第6回
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
第11回 GUI(グラフィカル・ユーザ・インターフェース)の設計
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
プログラミング演習3 第2回 GUIの復習.
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
2003年度 データベース論 安藤 友晴.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
~手続き指向からオブジェクト指向へ[Ⅱ]~
変数のスコープ クラス クラス変数 すべてのメソッドの外側でstaticで定義
JAVA入門後期⑨ JAVAのSwingのメニュー処理
プログラミング演習3 第3回 ミニプロジェクト.
オブジェクト指向基礎学習Ⅱ 平成19年6月20日 森田 彦.
アルゴリズムとデータ構造演習(6月24日) グラフィックス、その2 テキストフィールドで入力する チェックボックスで1つ以上指定する
ライブラリを利用したGUI の実現(2):Swing 11月12日
Java/Swingについて (2) 2005年10月11日 海谷 治彦.
JAVA入門後期⑦ JAVAのSwingの基本構造
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
プログラミング演習3 第3回 ミニプロジェクト.
シューティングゲーム.
プログラミング演習3 第2回 GUIの復習.
Java/Swingについて (3) 2005年10月19日 海谷 治彦.
クラスファイルの構造解析(2) 2003年6月23日 海谷 治彦.
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
Java8について 2014/03/07.
変数,式,関数,クラス,コンストラクタ, クラスの属性アクセス,メソッド,親クラ スからの継承
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
TCP/IPとプロセス間通信 2007年1月12日 海谷 治彦.
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
システムエンジニアリング演習 GUIの実現(1):AWT 11月6日.
オブジェクト指向プログラミング クラス 継承
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
Javaによる Webアプリケーション入門 第4回
サブゼミ第7回 実装編① オブジェクト型とキャスト.
Microsoft SharePoint Online の Web サイトを カスタマイズする方法
モグラたたき.
クラスの追加 メソッドの追加 TestCaseの追加 Test Methodの追加.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
Javaを用いたシューティングゲーム作成
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
プログラム理解のための 付加注釈 DocumentTag の提案
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
Presentation transcript:

Java/Swingについて+ (4) 2005年10月26日 海谷 治彦

目次 XMLEncoder/Decoder 再び GUIの永続化 内部フレーム ポップアップメニュー GUI部品のカスタマイズ 永続化とは? Light Weight Componentとは?

XMLEncoder/Decoder 再び Javaのオブジェクト(インスタンス)を手っ取り早く外部データ化するAPI. この外部データ化することを「永続化」と呼ぶ. ファイルに保存とか,プログラム同士のデータ交換とか.

XMLEncode/Decodeの要件・利点 以下の要件を満たすクラスでないとならない. 無引数のコンストラクタを持つ. 永続化したい属性にはsetter/getterがある. 利点 永続化形式をプログラマが決めなくてもよい. Cの演習でリスト構造のファイル保存形式を決めるような面倒はスキップできる. あるオブジェクトを永続化すれば,参照されているオブジェクトも一緒に永続化される. 無論,永続化の要件を満たさないとダメだけど.

Setter/Getter ある属性の値を設定(set)したり,獲得したり(get)したりするためのメソッド. 属性の名前に従い,定められたメソッド名でないといけない. 例 属性名 abc setter ⇒ setAbc getter ⇒ getAbc

例題(XMLEncText1)の構造 mainメソッド 型Aの オブジェクト “sakana” 型Bの オブジェクト “tako”

例題(XMLEncText2)の構造 配列およびArrayListに対応している. mainメソッド 型Cのオブジェクト “ebi0” “tako” 型Cのオブジェクト “ebi1” 型Aの オブジェクト “sakana” 型Cのオブジェクト “ebi2” ArrayListで実装 型Cのオブジェクト “ebi3” 配列で実装 型Cのオブジェクト “kani0” 型Cのオブジェクト “kani1” 型Cのオブジェクト “kani2” 配列およびArrayListに対応している.

Swingの永続化 別に自分で保存形式をきめてもいい. しかし,XMLEncoder等を使うと凄く簡単に保存復元ができる. 特に,比較的トップレベルのJPanelから保存してしまえば,その上に乗っかっている部品もいもづるに保存される. 永続化条件を満たせば,Listener等も保存される. 例題(XMLEncDecSwing2)を参照.

JScrollPane0: JScrollPane 例題の永続化された構造 このオブジェクトを保存すると他も保存される. JPanel0: JPanel null: LayoutManager source : NullLayout2 listener : JButton source JScrollPane0: JScrollPane listener : Rectangle : SaveAdapter : Rectangle : TextArea 他のオブジェクトから参照されるオブジェクトには名前(id)がある.

JScrollPane0: JScrollPane 永続化構造の条件 保存するオブジェクト以下の参照関係が閉じていること. 前ページはOK 以下はダメ このオブジェクトを保存すると他も保存される. 他のPanel: JPanel null: LayoutManager JPanel0: JPanel source 上記の パネルが マズい : NullLayout2 listener : JButton JScrollPane0: JScrollPane ※ 絶対ダメというわけじゃないが, 復元のプログラムが複雑になる.

内部フレーム Internal Frame いわゆるMDI (Multi Document Interface)を実装するための技術. MSエクセル,パワーポイント等が普通に採用している. 同種の文書を同時に比較しながら見たり操作したりするのに便利. 単純に見た目がかっこいい.

JInternalFrameの属性 デフォルトは全てオフのはず Visible 画面に見える Closeable [x]で閉じられる Resizable サイズ変更できる Iconifiable アイコン化できる Maximizable 最大化できる

基本的な設定 JDeskTopPaneのインスタンスdeskを作る. deskをJFrameのPaneに張り付け. deskにJInternalFrameのインタンス(コレが内部フレームの実体)iframeをaddする. iframe内は通常のJFrame同様,Paneを通して適宜部品をはっつける. 例題(MoveButton1)を参照.

ポップアップメニュー 基本的には普通のメニューと同じ. 詳細は例題参照.

既存部品の拡張 Swingのほとんどの部品は,Light-Weight Component と呼ばれる. JComponent 軽量化部品 OS等の提供するGUI部品を利用していない. 用は単に「ボタンみたいな画」を書いてるだけ. JComponent 軽量化部品の抽象スーパークラス コイツを継承すれば独自の部品を作成できる.

例題 線を引くコンポーネント JLabelのサブクラスとして実装 実質,paint メソッドをオーバーライドしてるだけ.