JFileChooserボタンには数十個あるので、抽象アクションを使用したいと思います。
public class OpenFileAction extends AbstractAction {
JFrame frame;
JFileChooser chooser;
OpenFileAction(JFrame frame, JFileChooser chooser) {
super("Open...");
this.chooser = chooser;
this.frame = frame;
}
public void actionPerformed(ActionEvent evt) {
// Show dialog; this method does not return until dialog is closed
chooser.showOpenDialog(frame);
}
};
明らかに、JFileChooserの結果を変数に書き込みたいと思います。アクションが終了した後、どうすればe.getSource()にアクセスできますか?FileChooserダイアログが開く前にトリガーされるため、これは機能しません。
JButton btnNewButton_1 = new JButton(new OpenFileAction(new JFrame(), new JFileChooser(new File(".")) ) );
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//process e.getSource() ?
}
});