2013-04-01 5 views
0

Я хочу создать простую java-программу, которая где-то создает текстовый файл. Я хочу, чтобы пользователи выбирали папку. Но когда я обертываю его в файл jar и отправляю другим. Каждый раз, когда мой друг запускает его, он запрашивает папку. Интересно, как я могу позволить файлу jar только спрашивать один раз и установить его как final. Внутри мой файл .java, у меня есть что-то вродеПользовательские настройки

public void setDefaultFolder() { 
    //initially path is empty string 
    if(fc.getPath().equals("")){ 
     String a = JOptionPane.showInputDialog("Please select a default folder." + 
       " Make sure it exists and it's not changeable once set"); 
     if(a != null) { 
     String b = a.replace("\\","\\\\"); 
     // set String path = something users enter 
     // fc is a helper object. I have all the read/write file or other methods 
     // there. I want to let the jar file read the path only for the first time 
     // and set the path final, later on, when it detects path is not empty 
     // string, it stops asking users to type in path. 
     fc.setPath(b); 
     } 
     else { 
      JOptionPane.showMessageDialog(null, "Folder not set"); 
     } 
    } 
} 
+0

Сохраните его в файле конфигурации. Если файл конфигурации существует, прочитайте путь. Если нет, попросите его и сохраните. – m0skit0

+0

Как я могу добавить инструкцию if, если она пуста, я хочу позволить выполнить этот JOpitionPane.showInputDialog. Если он не пуст, то я не выполняю диалог ввода. –

ответ

2

Вы должны сохранить конфигурацию пользователей где-то. Существует много способов сделать это, например, вы можете использовать java.util.prefs пакет, как заявил Питер Knego В своем answer to this question:

// Retrieve the user preference node for the package com.mycompany 
Preferences prefs = Preferences.userNodeForPackage(com.mycompany.MyClass.class); 

// Preference key name 
final String PREF_NAME = "name_of_preference"; 

// Set the value of the preference 
String newValue = "a string"; 
prefs.put(PREF_NAME, newValue); 

// Get the value of the preference; 
// default value is returned if the preference does not exist 
String defaultValue = "default string"; 
String propertyValue = prefs.get(PREF_NAME, defaultValue); // "a string" 
+0

Должен ли я создавать новый класс? –

+0

Нет, проверьте это, может вам помочь: http://alvinalexander.com/blog/post/java/simple-java-preferences-api-example –

+0

Как добавить инструкцию if, если она пуста, я хочу разрешить выполнение JOpitionPane.showInputDialog. Если он не пуст, то я не выполняю диалог ввода. –

0

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

+0

предлагает вам проверить ... [реквизит использования] (http://docs.oracle.com/javase/tutorial/essential/environment/properties.html) и [реквизит] (http://www.mkyong.com/Java/Java-свойства-файлы-примеры /) –