- PR -

JInternalFrameについて

投稿者投稿内容
sue
会議室デビュー日: 2002/04/24
投稿数: 9
投稿日時: 2004-02-23 10:02
いつもお世話になっております。

The SwingSet Demo(SwingSet Episode2)というSwingのデモの中にInternalFrameDemoというものがありますが、paletteと思われるInternalFrameだけタイトルバーが細いのですが、これってどのように設定するのかご存知の方いらっしゃいますでしょうか。

タイトルバーの高さを設定することができるのでしょうか。

ソースコードを見ているのですが、どうしても不明なので質問させてください。

The SwingSet DemoのURL
http://java.sun.com/products/javawebstart/demos.html
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-02-23 12:07
ソースコードからcreateInternalFrameのメソッドをコピーして、
適当にコンパイルと実行が可能なように修正し、不必要な部分を
削っていけば、肝心な部分にたどり着くことができます。

コード:
palette.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);

さくらば
大ベテラン
会議室デビュー日: 2002/11/12
投稿数: 145
投稿日時: 2004-02-23 15:23
こんにちは、さくらばです。

引用:

Wataさんの書き込み (2004-02-23 12:07) より:
肝心な部分にたどり着くことができます。

コード:
palette.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);





ちなみにこれは Metal でしか有効になりません。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-02-23 19:11
Wataです。
すみません。前の「createInternalFrameのメソッドをコピーして...」
という書き込みはcreateInternalFramePaletteの間違いです。

引用:

さくらばさんの書き込み (2004-02-23 15:23) より:
ちなみにこれは Metal でしか有効になりません。


SwingSet2でも、Look&Feelを変更すると普通のタイトルバーが表示されますね。

ところで、こういう各コンポーネントで利用できるプロパティの一覧ってどこかに
ドキュメント化されてるのでしょうか?もし、公にドキュメント化されていないと
すると、今後のバージョンでの動作は保証されるのでしょうか
sue
会議室デビュー日: 2002/04/24
投稿数: 9
投稿日時: 2004-02-24 21:51
Wataさん、さくらばさん、ご返答有難うございます。

設定できました。

引用:

さくらばさんの書き込み (2004-02-23 15:23) より:
ちなみにこれは Metal でしか有効になりません。



!!
そうなのですね。
L&Fを変更して確認しました。
とりあえず、現在作成中のアプレットはMetalにする予定ですので、採用します。

引用:

Wataさんの書き込み (2004-02-23 19:11) より:
SwingSet2でも、Look&Feelを変更すると普通のタイトルバーが表示されますね。

ところで、こういう各コンポーネントで利用できるプロパティの一覧ってどこかに
ドキュメント化されてるのでしょうか?もし、公にドキュメント化されていないと
すると、今後のバージョンでの動作は保証されるのでしょうか



皆様もドキュメントの記述を見たことがないのですか?
このClientPropertyは一覧を取得する手段が見当たらない感じですが、どのように取得するのでしょう?getClientProperty(Object)の引数に指定するkey値が不明だと手も足もでませんし。getClientroperties()のようなメソッドも見当たらないし。

LookAndFeelの各デフォルトプロパティの一覧は「グラフィックJava2Vol.2Swing編(下)」に載っていましたが、これは載っていませんでした。

ドキュメントがないことには、なんともはや。

とりあえず、有難うございました。
さくらば
大ベテラン
会議室デビュー日: 2002/11/12
投稿数: 145
投稿日時: 2004-02-25 04:32
こんにちは、さくらばです。

引用:

sueさんの書き込み (2004-02-24 21:51) より:
引用:

Wataさんの書き込み (2004-02-23 19:11) より:
ところで、こういう各コンポーネントで利用できるプロパティの一覧ってどこかに
ドキュメント化されてるのでしょうか?もし、公にドキュメント化されていないと
すると、今後のバージョンでの動作は保証されるのでしょうか



皆様もドキュメントの記述を見たことがないのですか?



いちおうあることはあるのですが....
MetalInternalFrameUI の JavaDoc に IS_PALETTE というのがあって
これが JInternalFrame.isPalette に対応しています。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/plaf/metal/MetalInternalFrameUI.html

でも、こんなところに書かれても絶対気がつきませんね。
まとまった、ドキュメントも見たことないです。

いちおう、JComponent クラスには getClientProperties というメソッドが
あるのですが、private です
sue
会議室デビュー日: 2002/04/24
投稿数: 9
投稿日時: 2004-02-27 21:23
すみません。

追加で質問なのですが、JDialogのアイコンのコーヒーカップのアイコン(JavaCup.gif?)を変更することが可能かご存知でしたら、ご教授ねがえないでしょうか?

さくらば
大ベテラン
会議室デビュー日: 2002/11/12
投稿数: 145
投稿日時: 2004-03-01 04:43
こんにちは、さくらばです。

引用:

sueさんの書き込み (2004-02-27 21:23) より:
追加で質問なのですが、JDialogのアイコンのコーヒーカップのアイコン(JavaCup.gif?)を変更することが可能かご存知でしたら、ご教授ねがえないでしょうか?



Java だけだと無理です。Frame クラスの派生クラスでないと、アイコンを変更でき
ないようです。

もちろん、JNI を使えばできます。Windows の場合、Win32API の SendMessage
を行うことで実現できます。

コード:
    SendMessage(WM_SETICON, ICON_SMALL, (LPARAM)m_hIcon);
    SendMessage(WM_SETICON, ICON_BIG,   (LPARAM)m_hIcon);



# m_hIcon を作るのはそれなりの手間がかかります。
# J2SDK 1.4.2 のコードは公開されているので、それを参考にするのが
# 一番だと思います。

スキルアップ/キャリアアップ(JOB@IT)