我想爲JFileChooser按鈕使用Abstract操作,因爲會有幾十個這樣的操作。Swing:在操作後處理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()操作完成後?這不工作,因爲它觸發文件選擇對話框打開之前:
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() ?
}
});
我真的不明白你想要做什麼。你爲什麼要用你的動作(第一個動作監聽器)創建一個按鈕,然後在按鈕後面添加第二個動作監聽器?你最終的目標是什麼? –
我需要以某種方式從文件選擇器中獲取值。鑑於我必須知道OpenFileAction的結果,那麼會怎麼做呢? –