- PR -

LookAndFeelについて

1
投稿者投稿内容
sue
会議室デビュー日: 2002/04/24
投稿数: 9
投稿日時: 2002-09-17 22:20
SDK1.3を使って作成したアプリケーションがありました。これはLookAndFeelにWindowsを設定していました。そして今日、SDK1.4の上で動かしてみました。すると、ファイルチューザーが様変わりしているのに気が付きました。1.3の頃は味気ないものだったのですが、1.4ではメモ帳の「名前を付けて保存」に使われているものと同じ物が出てくるようになりました。具体的に言うと、ダイアログの左部分に「履歴」「デスクトップ」「マイドキュメント」「マイコンピュータ」「マイネットワーク」へのショートカットがついたものです。

調べていたら、1.4のSwingの新機能に以下の記述を見つけました。

” 「Windows の Look & Feel」の実装は、2000/98 バージョンの機能も利用できるように更新されました。 ”

OSはWin2000なので、新機能であることはわかったのですが、2点気になることがあり、こちらに相談させていただくことにしました。
1.Recentだけが日本語のままであること
2.ショートカットアイコンの文字が途中できれてしまっていること

この部分を以下のように修正したいのですが、可能でしょうか?
1.Recentを履歴に修正
2.文字が全部表示されるように左部の幅を大きくする

ご存知の方がいらっしゃいましたら教えてください。

環境は Windows2000+sp2 SDK1.4.0_02 です。

------------------以下サンプルソースです。------------------
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Untitled1 extends JFrame {
private JButton jButton1 = new JButton();

public Untitled1() {
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
this.getContentPane().add(jButton1, BorderLayout.CENTER);
}

public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exception e) {
e.printStackTrace();
}
Untitled1 untitled11 = new Untitled1();
untitled11.setSize(300,300);
untitled11.show();
}

void jButton1_actionPerformed(ActionEvent e) {
JFileChooser f = new JFileChooser();
f.showOpenDialog(this);
}
}

H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-09-18 00:13
引用:

sueさんの書き込み (2002-09-17 22:20) より:
この部分を以下のように修正したいのですが、可能でしょうか?
1.Recentを履歴に修正
2.文字が全部表示されるように左部の幅を大きくする



むむむ。難しいですねぇ。Windows用のLook&Feelはcom.sun.java.swing.plaf.windows.WindowsLookAndFeel#WindowsFileChooserUIにあります。ソースを見るからに、privateやpackgedな物でゴリゴリ書いてあるので拡張性はありませんし、本来拡張されるものでもないので使えません。

しかも、final Dimension buttonSize = new Dimension(83, 54); (557行目)なんて行を見つけました。横のショートカットのボタンのサイズをハードコードしてあるので、ダイナミックに変えることはできません。ボタンのサイズが一定なので、フォントのサイズを変えない限り文字を全部表示することは無理かと。(フォントを変更するのは可能なのかな?)

また、ショートカット内の文字ですが、この文字はおそらくDocument and Settings内のRecentというフォルダから取ってきていると思われるので変更は無理でしょう。

#XPで試したら横のショートカットバーが出てきませんでした。なんでだろうと思ってソースを見ると、OSのリストにはMEまでしかありませんでした。JDK1.4のLook&FeelはXP対象外なんですね。

[ メッセージ編集済み 編集者: H2 編集日時 2002-09-18 00:16 ]
sue
会議室デビュー日: 2002/04/24
投稿数: 9
投稿日時: 2002-09-18 13:04
返答ありがとうございます。

引用:

H2さんの書き込み (2002-09-18 00:13) より:
むむむ。難しいですねぇ。Windows用のLook&Feelはcom.sun.java.swing.plaf.windows.WindowsLookAndFeel#WindowsFileChooserUIにあります。ソースを見るからに、privateやpackgedな物でゴリゴリ書いてあるので拡張性はありませんし、本来拡張されるものでもないので使えません。

しかも、final Dimension buttonSize = new Dimension(83, 54); (557行目)なんて行を見つけました。横のショートカットのボタンのサイズをハードコードしてあるので、ダイナミックに変えることはできません。ボタンのサイズが一定なので、フォントのサイズを変えない限り文字を全部表示することは無理かと。(フォントを変更するのは可能なのかな?)
[ メッセージ編集済み 編集者: H2 編集日時 2002-09-18 00:16 ]


なるほど、ソースですか。私、恥ずかしながら思いつきませんでした。為になることを教えていただきました。ありがとうございます。

私もソースを見てみましたが、確かにprivateばかりですね。コメントにも以下の記述がありました。今後のバージョンアップに期待します。
//ウインドウズFileChooser L&Fのインプリメンテーションがまだ完了していないので、下記はprivateです。

ボタンのサイズの変更もできないし、ボタンの配置されているパネルのサイズも以下の部分から変更できないし、現段階ではあきらめます。
  shortCutPanel = new ShortCutPanel();
  fc.add(shortCutPanel, BorderLayout.BEFORE_LINE_BEGINS);

引用:

また、ショートカット内の文字ですが、この文字はおそらくDocument and Settings内のRecentというフォルダから取ってきていると思われるので変更は無理でしょう。
[ メッセージ編集済み 編集者: H2 編集日時 2002-09-18 00:16 ]


そうですか。では、これも今回はあきらめます。

引用:

#XPで試したら横のショートカットバーが出てきませんでした。なんでだろうと思ってソースを見ると、OSのリストにはMEまでしかありませんでした。JDK1.4のLook&FeelはXP対象外なんですね。
[ メッセージ編集済み 編集者: H2 編集日時 2002-09-18 00:16 ]


確かにXPの記述はありませんでしたね。

とりあえず、今後のバージョンアップに期待することにします。どうもありがとうございました。
1

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