FileChooserに追加の(オプションの)JTextFieldを含めて、ユーザーが選択後に追加のプロンプトを表示するのではなく、ファイルを選択するときに入力できるようにします。誰かが似たようなことを試みて、実用的な解決策を見つけましたか?
私の目標結果は次のようになります。
FileChooserに追加の(オプションの)JTextFieldを含めて、ユーザーが選択後に追加のプロンプトを表示するのではなく、ファイルを選択するときに入力できるようにします。誰かが似たようなことを試みて、実用的な解決策を見つけましたか?
私の目標結果は次のようになります。
コントロールをに追加するための文書化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);