[英]JFileChooser showOpenDialog method not working with ActionListener
我一直在嘗試遵循此網站上的這些Java教程集
http://www.homeandlearn.co.uk/java/java.html
但是,這些教程在Netbeans中,並且我正在使用Eclipse。
到現在為止,沒有任何困難。 http://www.homeandlearn.co.uk/java/opening_files.html
在給定的教程中,顯示了使用JFileChooser通過名為“ Open”的JMenuItem打開文件。 但是,當我使用網站中給出的代碼時,會發生以下錯誤
JFileChooser類型的方法showOpenDialog(Component)不適用於參數(new ActionListener(){})
這是發生錯誤的代碼。
JMenuItem mntmNewMenuItem = new JMenuItem("Open");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int returnVal = db.showOpenDialog(this);
}
});
所以,我的問題是,我應該在上面的代碼存根中更改什么才能使用文件選擇器?
如果您想查看完整的代碼,我會根據您的要求放入。
錯誤的含義: showOpenDialog
方法需要一個Component
類型的參數,但正在使用ActionListener
進行調用。 更確切地說,給定的參數是實現ActionListener
的匿名類,而不是Component
:
new ActionListener() { ... }
在聲明我使用的方法里面. . .
. . .
關鍵字this
指向該匿名類的實例。
請參閱showOpenDialog()
的文檔,它需要一個parent或null
:
彈出“打開文件”文件選擇器對話框。 請注意,批准按鈕中顯示的文本由L&F確定。
參數:
parent - the parent component of the dialog, can be null; see showDialog for details
以及showDialog()
的相關文檔:
父參數確定兩件事:打開對話框所依賴的框架以及放置對話框時外觀應考慮其位置的組件。 ...如果父級為null,則對話框不依賴於可見窗口,而是放置在與外觀相關的位置,例如屏幕的中心。
通常,傳遞的參數是應該可視地包含對話框的JFrame
或JPanel
,但它可以為null
:
int returnVal = db.showOpenDialog(null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.