2013-07-03 2 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

[hmmm не согласен] (http://stackoverflow.com/questions/6309407/remove-top-level-container-on-runtime) – mKorbel

+0

Количество времени, которое требуется чтобы создать класс выбора файлов, настолько гномичен, чтобы рассматривать использование ленивого подхода к загрузке, но сохраняя созданный экземпляр, если вы думаете, что он будет использоваться повторно. Если даже в прошлом был настроен глобальный, и он был настроен по мере необходимости – MadProgrammer

0

Сборщик мусора должен позаботиться о том, чтобы удалить объект JFlieChooser. Вы можете узнать больше о том, как работает сборщик мусора here

Смежные вопросы