7

FileChooserに追加の(オプションの)JTextFieldを含めて、ユーザーが選択後に追加のプロンプトを表示するのではなく、ファイルを選択するときに入力できるようにします。誰かが似たようなことを試みて、実用的な解決策を見つけましたか?

私の目標結果は次のようになります。

http://imgur.com/lVMd6

4

1 に答える 1

8

コントロールをに追加するための文書化JFileChooserされた方法は、setAccessory(JComponent)メソッドを使用することです。

JTextField field = new JTextField("Hello, World");
JPanel accessory = new JPanel();
accessory.setLayout(new FlowLayout());
accessory.add(field);

JFileChooser chooser = new JFileChooser();
chooser.setAccessory(accessory);
int ret = chooser.showOpenDialog(frame);

ただし、これにより、ダイアログの右側に新しいコントロールがレイアウトされます(正確な配置はおそらくロケールに依存します)。

コンポーネントを目的の位置に配置するには、コンポーネントグラフをたどって操作する必要があります。これは非常に脆弱なアプローチであり、独自のダイアログを作成する方がよい場合があります。

これには、ファイルチューザーを組み込むことができます。

JFileChooser chooser = new JFileChooser();
chooser.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO - wire into something
    System.out.println(e);
  }
});

JTextField field = new JTextField("Hello, World");

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(chooser, BorderLayout.CENTER);
panel.add(field, BorderLayout.SOUTH);
于 2010-01-28T17:35:45.277 に答える