2

Mac OSX システム アイコンにアクセスする方法を探しています。Mac のデフォルトの場所を知っている人はいますか? または、Java を使用してそれらを返す方法を知っていますか?

Mac用のJFileChooserを使用してファイルのアイコンを取得する方法がありますが、ファイルはファイルシステム上に存在する必要があります(私のアプリでは、ファイルはサーバーからストリーミングされる可能性があるため、システム上にダミーファイルを作成する必要はありませんその拡張子は機能しません)。

Windows では、SWT を使用して次の方法でそれらにアクセスできます (ただし、これは Mac では爆撃します)。たとえば、以下の変数「fileType」は、「.txt」、「.bmp」、「.doc」などです。

Program p;
Image image;

//find the correct OS image for the file type and set
//the image to the tree item
p = Program.findProgram(fileType);
ImageData data = p.getImageData();
image = new Image(display, data);

更新: これらをインポートする明確な方法はないようです。より良い解決策が見つかるまで、一般的な Mac アイコンをいくつかオンラインで見つけてアプリにバンドルし、Mac で getRecourceAsStream() を使用するだけにしました。

4

3 に答える 3

4

遅くなりましたが、他の誰かが同じ問題を検索するかもしれません (私のように)。

FileSystemView トリックは、すべてのプラットフォームで 16x16 の画像に対してのみ機能します。Mac で動作させるには、デフォルトの Aqua ルック アンド フィールを使用する必要があります。

Windows の場合、ShellFolder.getShellFolder(file).getIcon(true) を使用して 32x32 のアイコンを取得できます。

Mac の場合、任意のファイル (16px、32、64、128、256、512) に必要な/使用可能なアイコン サイズを提供するいくつかの Objective-C jni ライブラリに付属する Quaqua を使用できます: http://www.randelshofer. ch/quaqua/javadoc/ch/randelshofer/quaqua/osx/OSXFile.html#getIcon%28java.io.File,%20int%29

于 2010-04-20T16:14:10.533 に答える
3

OS X では、FileViewはFileSystemViewよりもはるかにうまく機能します。ファイルのアイコンを取得するために次を使用しています。

final JFileChooser fc = new JFileChooser();
//return fc.getFileView().getIcon(f); // will throw a  null pointer
Icon result = fc.getUI().getFileView(fc).getIcon(f);
于 2012-12-31T12:12:26.337 に答える
0

FileSystemViewとその仲間は、ファイルアイコンを取得する方法を提供していると思います。

于 2009-07-17T19:20:01.367 に答える