[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 02/06 15:43 / Filesize : 197 KB / Number-of Response : 766
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java低速GUI Swing 5



1 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 11:50:09 ]
ハードウェアの高スペック化、JavaVMのホットスポットの高速化に伴い、
パフォーマンスの問題は徐々にですが改善されつつあります。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 4 (前スレ)
pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
pc5.2ch.net/test/read.cgi/tech/1062271447/l50

384 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:02:44 ]
すべてのコンポーネントのセットをJPanelをExtendsしたオリジナルなコンポーネントにしておいて
JFrameのレイアウトに置いていく作りにしてるんだけど、これでイケテル?

385 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:17:50 ]
いろんな意味で意味がわかんない

386 名前:384じ mailto:sage [2007/04/13(金) 00:30:50 ]
自分でも読んでて意味わかんないやw
巧く説明できないのでおやすみなさい

387 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:31:04 ]
www.tohoho-web.com/java/layout.htm
これの一番下の事を言っているのでは

388 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 02:46:21 ]
>>384
うーん、単にJPanelを置いてその中にコンポーネント配置していけばいいんじゃないのかな?

389 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 03:07:27 ]
>>384が言いたいのは、
public class HogePanel extends JPanel{...} として作っておけば、
JFrame, JInternalFrame, JApplet, JTabbedPane などに乗っけるだけで
いろいろ使える、って意味では?
再利用性を高めるやり方としては間違ってないと思う。
再利用の必要がないなら無駄だけど、個人的にこういう作りは好きだ。

390 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 03:27:30 ]
>>389
つまりJColorChooserみたいな複合ウィジェットを作って再利用ってだけの話なのかね?
JPanelじゃなくてJComponentでいい気がするけど…

391 名前:384 mailto:sage [2007/04/13(金) 22:13:53 ]
>>389-390
そのとおりです!
気持ちが伝わってなんか嬉しいっす。
JComponentですか。思いつきませんでした。どっちがメリットあるかなぁ。

392 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:03:48 ]
JPanelのソース見てみ。JComponentほとんどそのままだ。



393 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 15:46:11 ]
複合ウィジェットならJPanelが自然でしょ。

394 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:29:58 ]
>>393
awt では Panel 使ったけどが swing で JComponent が Container に
なったから JPanel にする必要は全くなくなったのでは…?

395 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:32:06 ]
>>393
どっからそんな情報が沸いてくるん?

396 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:35:58 ]
>>394
JComponentはObjectのようなSwingコンポーネントのルートクラスだから
継承するならいいけどぽとぺたやるならJPanelで

397 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:44:27 ]
>>396
具体的にJPanelのどの部分がぽとぺたに向いているのでしょうか?
あるいは JComponent のどの部分が向いてないのでしょう?

398 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:58:04 ]
背景が透明か不透明かが違いじゃないん?

399 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:03:47 ]
JComponentはこっそりabstractクラスなので、そのまま載せようとして
あれ? と思ったことはあるが、どうせ継承して使うだろうし、あえて
JPanelでなければならないことはなさそうだな。

ただ、ポトペタだとソースレベルで継承して使うことにはおそらくならな
いだろうから、JPanelでないと駄目かも。



400 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:18:23 ]
思想的にJComponent使うなら新しいコンポネント作るくらいの意味合いだな
JPanelを使った場合、JPanelの機能変更に引きずられる可能性がある
それを望むのであればJPanelの上にまとめればよい
独自コンポネントでJPanelに影響を受け手欲しくなければJComponent

401 名前:デフォルトの名無しさん mailto:age [2007/05/12(土) 15:54:29 ]
JFrameの外枠とかメニューバーのサイズを変える事はできるのでしょうか?
できないなら正確なサイズを知る事はできるのでしょうか?

402 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:35:13 ]
つ Insets



403 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:52:56 ]
ありがとうございます
JFrameの方はなんとなくわかったのですが
メニューバーの方はわからないのでもう少しヒントをくれるとありがたいです

404 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:11:44 ]
Dimension size = menuBar.getPreferredSize();
menuBar.setPreferredSize(new Dimension(size.width, 200));


405 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:35:47 ]
ありがとうござました

406 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:57:55 ]
JFrame上のKeyEventを常に取得したいと思いまして、次のようなクラスを

class testKeyEv extends JComponent {
  public testKeyEv(){
    enableEvents(AWTEvent.KEY_EVENT_MASK);
    addKeyListener(new stateCheckKeyHandler());
    setFocusable(true);
  }
}

setGlassPane()でセットして実行すると、始めはちゃんとキーイベントを取得してくれるのですが、
マウスでほかのボタンをクリックしたりすると二度とキーイベントを取得してくれません。

ちなみに stateCheckKeyHandlerはKeyAdapterをextendsしたのもです。

マウスイベントはほかのコンポーネントにそのまま渡して、KeyEventだけを常に取得し続けるには
どうすればいいでしょうか?

407 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:13:43 ]
そのフォーカスがあたったコンポーネントでは通常の動作はしていいの?

408 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:57:16 ]
>>406
最初から中のコンポーネントにフォーカス当ててそっちでキーイベント拾いましょう
# 関係ないけどリスナーを登録してイベントとるなら enableEvents() は必要ないんじゃなかったっけ?

409 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:47:41 ]
JTreeのノードをDnDで移動できるようにしたんだけど、その関係で
ツリーのノードによってノード毎に違うテキストのツールチップを表示しなきゃいけないんだけど、
この方法はJTreeのgetTooltipText()でノード別のテキスト返すように
オーバーライドするとして、ツールチップテキストを設定するタイミングはどのぶぶん?
カスタムセルレンダラ使ってるんでセルレンダラがレンダリングコンポーネント返す時にそのコンポーネントに
テキスト設定しようと思ってるんだけど、それで良いかな?

ググって漁ってみたんだけど他に思いつかない。アプローチが間違ってんのかすらも分からない。

教えてエロいひと。


410 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:05:28 ]
レンダラのタイミングだとレンダリングし終わるとその後ずっと呼ばれないし、
スクロールとかウインドウの重なり具合とか最大縮小するだけでもよばれるけどそのタイミングでいいの?

411 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:13:50 ]
ヒントもあたえたほうがいいか
JComponentのgetToolTipTextをオーバーライドすればいい

412 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:16:13 ]
「普通に」がぬけてた・・・
何のための引数かと



413 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:50:21 ]
TextField を f1,f2,f3,f4,f5,f6,f7

と言う名で作りました。
あらかじめNetBeansで個数分貼り付けちゃいました。

それぞれにある一定の処理をしたいのですが。
forなど繰り返し処理のなかで出来るようにしたいです。

JTextFieldの配列などに繋げれば出来そうですが、
それでは最初に全部個数分繋げる作業が必要になるわけです。
JTextFieldの数が大量になった場合大変ですから。

なんとか名前の数字を変更してアクセスする方法ないでしょうか。
よろしくお願いします。

414 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 22:41:50 ]
JTextFieldだけを乗せるJPanel(というかContainer)を作って、getComponentsを呼び出せばいいかもね

415 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:28:30 ]
メンバー変数としてf1,f2,...があるのならリフレクションで取れるよ。
ローカル変数だと出来ないけど。


416 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:38:03 ]
>>413
f1,f2,f3,f4,f5,f6,f7 は、とりあえず そのままにしといて、
配列必要になったら new JTextField[]{f1,f2,f3,f4,f5,f6,f7} して配列作るとかすれば?

417 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:37:48 ]
>>414さん、>>415さん、>>416さん
ありがさうございました。(^v^)

418 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 04:38:44 ]
>>415
そんな事はできてもする設計にしてはいけない・・・・
>>417
>>414案が妥当だと思った。が、別に特別にPanelを用意せずにnameプロパティに
何か分かりやすいのを振っておいてコンポネントをより分ければいいと思う。

419 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 07:37:22 ]
>>410
ありがと、できたよ。ソースコード見てみたけどJTree#getTooltipText(MouseEvent)が
回りくどい実装してたんだね。

420 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:55:22 ]
>>418
> そんな事はできてもする設計にしてはいけない

同じようなことをたくさんやるときに、利用するのはとても効率的だと思うよ。
リフレクション使って配列に格納するメソッドを用意しておいて、実際の利用は配列を使うというのがいいかと。
nameプロパティ使うのと、本質的な差はあまりないと思う。

421 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 16:29:51 ]
リフレクションってのは、フレームワークレベルで使うのはいいと思うが
一般のコードには入れない方がいいと思うんだ・・・・
だから>>420 の利用する部分との分離がいいな

422 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:45:44 ]
>>421
リフレクションを使うってことは,せっかく(記述が面倒な)Javaを使うことで得られる
強力なコンパイラの型チェックをスルーしてアクセスするわけだからライブラリや
フレームワークにしてそれなりにテストした上で使うのがいい使い方なんだろうね…
# ってかリフレクションを無駄に使ってるJavaアプリケーション見るとそれならもっと動的な言語使えよとか思う…



423 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:51:13 ]
プライベートなものも自由に触れるからな
アプリ側で出てきたときにはそれはもはや実装のバグとよんでもよいかと

424 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 12:01:45 ]
リフレクションって、どっちかっつーとコンストラクタ貰ってきて
インスタンス生成みたいな用途が多いと思ってたんだけど、

アクセス制限を回避するなんてキチガイじみた目的がメインで使う人もいるのか……

425 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 12:13:45 ]
>>424
使ってないんじゃね? 思いつく用途がそれだけだっただけで。

426 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 12:23:08 ]
>>424
ライブラリやフレームワークで独自のシリアライズとかする場合には
private なインスタンス変数にアクセスする用途に使われる
まぁメインの用途ではないよね.普通の用途なら Bean の getter, setter呼ぶのに使うとか?

427 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 13:04:55 ]
>>424
DIとかフレームワーク側は普通に使うよ

428 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 14:27:56 ]
ここで反論する理由がひとつでもある人は、使ってもいいと思う。
宣言をprivateにしておいて、値は特別な仕組みでリフレクション使って設定するようにして、通常のコードからは値が変更できないようにしておくとか。

429 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 14:29:52 ]
フレームワークで使うのは誰も否定してないんじゃね?

430 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 14:38:56 ]
ちょっとスレから外れてきた。 Java 低速GUI ネタよろ…

431 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 14:57:08 ]
今回の件に関しては reflection 使わずに
interface 定義してどうのこうのの方がよろしくね?

add した時に add された側(コンテナじゃなくてコンポーネント)で
呼び出されるメソッド(イベント)とかって無いんだろうか。

432 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:46:09 ]
>>431
HierarchyListener#hierarchyChanged(HierarchyEvent)
イベント内容で判断しないといけないけど。



433 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:42:08 ]
>>424
イディオムになるくらいよく出てくるならそこだけ纏めても別にかまわないと思うが->変なリフレクション
というか纏めてくれないとぬっころすって事にならんか?


434 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:58:32 ]
こんな感じのメソッドを定義しておけばいいんだよね。
static <T> List<T> getInstances(Object parent, Class<T>, String prefix)
でこんな感じで使えるようにする。
List<JTextField> fields = getInstances(window, JTextField, "f");

435 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 23:55:10 ]
>>434
設計からやり直した方がよくないか?
テキストフィールドのコンテナクラスを自作するとか。その程度の手間で解決できそうじゃない?

436 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:08:13 ]
ポトペタで同じような部品を並べていくとその手の変数名が
数値部分だけ違うインスタンス変数が並ぶんだよな。
手で作れば真っ先に配列か何かにするところなんだが。


437 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 01:56:41 ]
ポトペタで配列作ればいいじゃんw

438 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 04:42:38 ]
>>435
配置の自由度が低すぎるので採用できる場面は少なそう。
いまさら手コーディングでGUIも作れんし。
VEなりNetBeansなりが、コンポーネント配列に対応してくれればいいのだけど。

439 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 06:03:52 ]
>>438
ああ、ようやっと変なリフレクションが欲しい場合の文脈が読めた。
GUIビルダーつかってデザインした複数フィールドの時はたしかに欲しいかも。

普段は手で作ってるからそんなに欲しいと思わないけど忙しい時だと欲しいかもしらん。


440 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:11:52 ]
NeXTやOSXにはあるね

441 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 10:45:31 ]
リフレクションとこのぽとぺたとは関係ないぞ

442 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 11:15:12 ]
>>483
いや、そっちのコンテナじゃなくてjavaでいうならコレクションみたいな感じ。
そのコレクションをコンポーネント間で共有するか誰か管理クラスに持たせて問い合わせるようにすれば
コレクションそのものも、フィールドへもアクセスの自由度は確保できる。
外の様子知るためだけにリフレクションは流石にアプリケーションソフトとしてはまずい。

てか、javaでデスクトップアプリ作っててコレクション使う場合が俺には
クラスの動的ロード+コンストラクタorファクトリメソッド呼び出ししか思いつかん。
webフレームワークとかjavascriptならね。



443 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 11:27:18 ]
デスクトップアプリでコレクション???

444 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 14:00:09 ]
>>442
日本語でお・ね・が・い♪

445 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 17:04:37 ]
JTextField から派生して
初期化時にインスタンス管理クラス呼び出して
自分を登録するようなクラス作成すれば
ポトペタでも管理出来る。けどキモいな。

446 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 18:29:11 ]
ContainerListenerを使って、JTextFieldが追加されたときにArrayList<JTextField>に追加していくって手もあるな

447 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 02:06:07 ]
それだと、結局リフレクションが一番手間が少ない。

448 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 03:30:01 ]
結論はポトペタ使わずに手で書く、です…

449 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 11:23:39 ]
>>446が一番エレガントで無難だな

450 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 12:24:33 ]
それだとJTextFieldの振り分けが必要になるんじゃない?
そのための名前をどうするか。

451 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 12:34:39 ]
JTextFieldを継承したコンポーネントを用意すればいいだけだから問題ないだろ
もちろん変数はJTextFieldのままでいい


452 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 12:47:07 ]
>>446
間にJPanel1枚挟んでレイアウトするケースもあるし、
そう単純には行かないんじゃない?



453 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 13:44:12 ]
>>448
ララァは賢いな。

454 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 15:49:12 ]
シャアぁぁぁぁぁぁぁっぁああああ!!

455 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 18:08:48 ]
ざれごとはやめろよ

456 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 03:29:09 ]
>>455
じゃまです。

457 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 04:30:18 ]
>>451
わざわざ継承使ってコンポーネント作るなら、他に特別な仕組みがいらないリフレクションの方がいいと思うよ。
普通にGUIエディタが使えるし。
順番の指定とかはどうすんの?

458 名前:457 mailto:sage [2007/05/31(木) 04:36:09 ]
継承使うというのは、影響範囲がでかい。
単にコンポーネント配列のために継承使うのはあまりいいとは思えんのだが。
GUIエディタ使いたい場合だと、「変数名を適切に指定して、あるメソッドに食わせたら配列ができる」ってのが一番手軽で影響範囲が少ないと思うのだが。

ここでのリフレクション否定の意見って、「リフレクションだからリフレクションはダメ」という理由ばかりな気がする。

459 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 04:38:04 ]
>>456
そういうセリフあったっけ?

460 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 05:35:58 ]
クリリンのことか?

461 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 09:38:42 ]
>>459
シーンは違うがこれだな
ttp://www.geocities.co.jp/AnimeComic-Pastel/3829/words40_Gundam.html

462 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 10:02:26 ]
ああ、あったあった。



463 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 11:43:19 ]
>>457
GUIエディタってのがNetBeansなら継承やマーカーインターフェースは普通につけれるし
順番の制御をしたいのならなおさらかと

464 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 11:37:19 ]
どっちでもやりたいようにやればいいと言うことで。

順番制御とか考えなきゃならんなら
最初から手で書けよ感がするけど。

465 名前:デフォルトの名無しさん [2007/06/01(金) 21:38:57 ]
JFrame に Java3D の Canvas3D を配置すると、
JMenuBar で作成したメニューが Canvas3D の背後に隠れてしまうんですが、
解決できないものでしょうか。

466 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 21:45:35 ]
Canvas3D ってJComponents継承してる?

467 名前:465 [2007/06/01(金) 21:48:55 ]
継承していないです。↓こんなんです。
java.lang.Object
 extended by java.awt.Component
  extended by java.awt.Canvas
   extended by javax.media.j3d.Canvas3D

468 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 21:49:57 ]
>>465
JPopupMenu#setLightWeightPopupEnabled(boolean) に false渡してもだめ?

469 名前:465 [2007/06/01(金) 21:53:18 ]
JMenuBar, JMenu, JMenuItem しか使っていないんですけど。。。

470 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 21:58:08 ]
>>469
java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JMenu.html
> メニューというのは実質的には JPopupMenu が割り当てられたボタンのことです。

JMenu#getPopupMenu()

471 名前:465 [2007/06/01(金) 21:58:37 ]
はっ!これでうまくいったー!ありがとー。
JMenu fileMenu = new JMenu("ファイル");
fileMenu.getPopupMenu().setLightWeightPopupEnabled(false);


472 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 22:40:36 ]
AWTの[コンポーネントと混ぜる時点でどうしようもないんだよな
JOGLだったらGLJPanelで問題なしだが



473 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 10:24:38 ]
Java3D 1.5だとJCanvas3Dがある。


474 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 10:59:08 ]
Java3D1.5ってOpenGL1.5要求するらしいから結構きついな

475 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 11:08:55 ]
まともに対応しようとしないintelうぜぇとか言ってみるテスト

476 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 14:40:13 ]
Intelのチップセット内蔵グラフィックスだとJava 2DのOpenGLアクセラレートが使えないのは辛いです。。。
Intelのドライバの問題で対応できないのか、対応しないだけなのか分からないけど。。。

477 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 17:15:58 ]
Java2DのOpenGLアクセラレーションは有効にしても描画が崩れるだけなので使い道がねぇ

478 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 11:25:53 ]
JFileChooserでダイアログを出すと

ttp://2sen.dip.jp:81/cgi-bin/upgun/up1/source/up5993.jpg

のようにフォントの大部分が太字になってしまいます。

試しに
JFileChooser chooser = new JFileChooser();
chooser.setFont(new Font("Dialog", Font.PLAIN, 12));
のようにしてもダメでした。

どうすればこの太字をFont.PLAINにできるのでしょうか?
識者の方々、どうかアドバイスをお願いいたします。

OS:Windows2000、XP
JDK:1.6.0、1.6.0_01
でそれぞれ試してみました。

479 名前:デフォルトの名無しさん [2007/06/11(月) 12:05:15 ]
すみません、上げます

480 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 13:15:32 ]
e-class.center.yuge.ac.jp/jdk_docs/ja/api/java/awt/Font.html

481 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 13:16:55 ]
https://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Font.html
java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Font.html


482 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 14:05:12 ]
>>478
UIManager.setLookAndFeel()




483 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 14:23:31 ]
>>478

amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=LookAndFeel

フォントを指定して起動する
SwingのデフォルトのLook & FeelであるMetalはメニュー等のフォントがBoldでいまいち見た目がよくありません(JDK1.3までは普通だったのですが…)。JavaVMに起動オプションを与えることで、このフォントを変更することができます。

java -Dswing.plaf.metal.controlFont=Dialog-12 alpha.AppMain

また、JDK1.5ではMetalLookAndFeelでPLAINなフォントを使用するために以下のオプションが利用可能です。

-Dswing.boldMetal=false

コマンドラインオプションではなく、Javaコード中で設定する場合には以下のようにします。

UIManager.put("swing.boldMetal", Boolean.FALSE);




484 名前:478 mailto:sage [2007/06/11(月) 15:58:38 ]
>>483
おおお、ベストアンサーでした。
ありがとうございます!
これで他のコンポーネントもsetFont(new Font("Dialog", Font.PLAIN, 12))をしなくて済みました。

他にもレスをくださった皆様方ありがとうございました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<197KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef