java диалог выбора директории файлы папки ))
Primary tabs
Forums:
смотрите основное рассуждение здесь
предлагаю решить проблему , "повесив" на кнопку =
import javax.swing.*; // импортируем весь свинг, дабы не заморачиваться(мы ведь только учимся)) ............ ....... ... JButton redButton = new JButton("Выбрать папку :))"); ActionListener actionListener = new TestActionListener(); // прирепляем обработчик
вот такой вот обработчик (отдельный класс) =
import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JFileChooser ; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /*конечной задачей этого обработчика является запись * значения пути к папке, указанной пользователем * в статическое поле MyData.path + запуск функции которая * как раз и выполнит поставленную задачу * обработатывать - и вообще работать с файлами будет класс DoIt - * так что , вообще говоря можно было бы сразу передать * полученный из диалога путь к папке через локальную переменную - * но мы использовали глобальное хранилище - MyData - *а именно его статическое поле path*/ public class TestActionListener implements ActionListener { // обработчик событий. public void actionPerformed(ActionEvent e) { //Код, который нужно выполнить при нажатии JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle("choosertitle"); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); MyData.path = ""+chooser.getCurrentDirectory(); // отлавливаем "путь в нашу глобальную переменную System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); // аналогично можно поймать и файл // MyData.path = ""+chooser.getSelectedFile(); // при желании -отловим файл } else { System.out.println("No Selection "); } if (MyData.path!="") { //Код, который нужно выполнить при нажатии String message = "путь получен)))="+MyData.path ; JOptionPane.showMessageDialog(new JFrame(), message, "Dialog", JOptionPane.ERROR_MESSAGE); DoIt Handler = new DoIt(MyData.path); // ВЫЗЫВАЕМ ЛОГИКУ ПРОГРАММЫ // ПЕРЕДАВ ПУТЬ К ПАПКЕ, в которой следует осуществить форматирование файлов } else { //Код, который нужно выполнить при нажатии String message = "УКАЖИТЕ ПАПКУ !!!"; JOptionPane.showMessageDialog(new JFrame(), message, "Dialog", JOptionPane.ERROR_MESSAGE); } //MyData.path = new String(data); } }
для хранения данных я , как безграмотный человек , использую класс со статическими полями (из него и можно как раз забрать "путь") =
public class MyData { // это класс будет хранить данные для нашей программы public static String path=""; // путь к директории из которой требуется взять файлы }
- Log in to post comments
- 9773 reads