クロノス・クラウン - 記事検索

おすすめ
自作の本やゲーム他を販売
便利なWebアプリが多数
ソフトウェア
めもりーくりーなー Winのメモリーを掃除
Novel Supporter 小説推敲補助ソフト
PCソフト まとめ
ゲームブック
闇の聖杯の儀式 電書のゲームブック
ゲーム
Little Land War... Win向けSRPG
Little Bit War Switch向け高速RTS
TinyWar... 1面数分の8bit風RTS
EX リバーシ 変形盤面、盤面多数
no link
2011年07月06日 14:07:46
 Javaの「JFileChooser」では、ファイル選択領域で右クリックをすると、コンテキストメニューがポップアップ表示されます。

 このメニューは、JPopupMenuを利用したものなので、そのコンポーネントを取得してJMenuItemを追加すれば、独自メニューを追加できます。

 この方法を昨日ネットで調べていたのですが、どうも上手い方法が見つからなかったので、自分でプログラムを書きました。

 というわけで、以下にその方法を書いておきます。ここでは、「エクスプローラーで開く」というメニューを追加します。現在開いているフォルダを、Windowsのエクスプローラーで開くことができます。

JFileChooser拡張

 以下、ソースコードを掲載しておきます。



JFileChooser flChsr = new JFileChooser(){
 private static final long serialVersionUID = 1L;
 {
  // メニューの拡張

  // JPopupMenuの探索
  Component[] c1 = getComponents();
  JPopupMenu popMn = null;
  outer:
  for (int i = 0; i < c1.length; i ++) {
   if (c1[i].getClass().getName().equals("javax.swing.JPanel")) {
    Component[] c2 = ((JPanel)c1[i]).getComponents();
    for (int j = 0; j < c2.length; j ++) {
     popMn = ((JPanel)c2[j]).getComponentPopupMenu();
     if (popMn != null) break outer;
    }
   }
  }

  // JPopupMenuにJMenuItemを追加
  if (popMn != null) {
   // セパレータ追加
   popMn.addSeparator();

   // エクスプローラーで開くメニュー
   JMenuItem mnItmOpn = new JMenuItem("エクスプローラーで開く");
   mnItmOpn.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent actionevent) {
     try {
      // 開く処理
      Desktop desktop = Desktop.getDesktop();
      desktop.open(getCurrentDirectory());
     } catch (Exception e) {
      e.printStackTrace();
     }
    }
   });
   popMn.add(mnItmOpn);
  }
 }
};
最新20件 (全て見る)

オススメ電書 (全て見る

動画講座 (全て見る

サイト目次

おすすめ

PCソフト/Webアプリ

ゲーム

マンガ

記事

柳井の同人活動

開発

携帯・スマホ

アナログ・ゲーム

Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2024 Cronus Crown (c)1997-2024 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について