2013-07-03 28 views
0

的每一個按鈕被按下時,它創建一個新的JFileChooser對象?是否有可能出售它,還是java的爲我做自動?如何處置JFileChooser中

public void buttonPressed(){ 
    JFileChooser chooser = null; 
    LookAndFeel previousLF = UIManager.getLookAndFeel(); 
    try { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
     chooser = new JFileChooser(); 
     UIManager.setLookAndFeel(previousLF); 
    } catch (IllegalAccessException | UnsupportedLookAndFeelException | InstantiationException | ClassNotFoundException e) {} 

    File location = new File("C:\\"); 
    chooser.setCurrentDirectory(location); 
    chooser.setDialogTitle("Select Your Directory"); 
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    chooser.setAcceptAllFileFilterUsed(false); 
    chooser.showOpenDialog(frame); 
} 

回答

1

Java使用垃圾回收器自動處理未使用的內存,所以是的。它會自動處理您的JFileChooser對象。

另外是的,每次按下按鈕時,如果您調用buttonPressed,則會創建一個新的JFileChooser。這是可以接受的。

+0

[嗯不同意(http://stackoverflow.com/questions/6309407/remove-top-level-container-on-runtime) – mKorbel

+0

的時間量需要創建一個文件選擇器類是如此格言足夠螞蟻考慮使用惰性加載方法,,但保持創建的實例,如果你認爲它會被重用。如果連建立在過去的一個全球性和配置它需要 – MadProgrammer

0

垃圾回收應該採取刪除您JFlieChooser對象的照顧。你可以閱讀更多關於垃圾回收器是如何工作的here