2014-11-12 3 views
0

Я создал меню настроек. Открыв меню, будет выполняться загрузка метода. Таким образом, меню знает, что был установлен флажок и радиокнопку:Сохранить значение в JTextField

static void load() { 
    testAllPagesHaveSameRotation.setSelected(PREFS.getBoolean("check1", false)); 
    testAllPagesHaveSameSize.setSelected(PREFS.getBoolean("check2", false)); 
    testAllFontsAreEmbedded.setSelected(PREFS.getBoolean("check3", false)); 
    testContent.setSelected(PREFS.getBoolean("check4", false)); 

    radioButtonCm.setSelected(PREFS.getBoolean("radio1", false)); 
    radioButtonInch.setSelected(PREFS.getBoolean("radio2", false)); 
} 

При нажатии на кнопку Сохранить метод будет выполняться метод хранения.

static void store() { 
      PREFS.putBoolean("check1", testAllPagesHaveSameRotation.isSelected()); 
      PREFS.putBoolean("check2", testAllPagesHaveSameSize.isSelected()); 
      PREFS.putBoolean("check3", testAllFontsAreEmbedded.isSelected()); 
      PREFS.putBoolean("check4", testContent.isSelected()); 

      PREFS.putBoolean("radio1", radioButtonCm.isSelected()); 
      PREFS.putBoolean("radio2", radioButtonInch.isSelected()); 
} 

Но у меня есть JTextField и введенное значение, как Строка в меню настроек тоже. Как я могу реализовать его в этих методах?

.. 
JTextField toleranceField; 
String tolerance; 
.. 

Я уже пробовал это:

 PREFS.put("check5", toleranceField.getText()); 

Но это не работает ...

+0

Ваше решение должно работать. Получаете ли вы сообщение об ошибке, это значение, которое просто не сохраняется? Какой код вы используете при заполнении текстового поля в методе загрузки? – Jack

+0

Ну, проблема в том, что с помощью метода хранилища я записываю значения в реестр со значениями «check1 ...» и так далее. Каждый раз, когда я полностью закрываю меню настроек и запускаю его снова, компьютер знает, что находится в реестре, и просто прочитайте значения и поместите их снова в меню настроек. Но как я могу это сделать с переносом строк, который я ввожу ...? :( – okaisan1

+0

Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример). –

ответ

1
static void store() { 

      ...... 

      PREFS.put("check6", toleranceField.getText()); 

} 

static void load() { 

    .... 

    toleranceField.setText(PREFS.get("check6", "default string value")); 
} 

Если резервное хранилище недоступен или не действительное значение указано для «check6», то стандартное «стандартное строковое значение» будет возвращено и задано как текст для JTextField. Значение по умолчанию также может быть NULL, если необходимо. Попробуйте и убедитесь:

  1. Если значение по умолчанию возвращается -> резервное хранилище недоступного или значения не установлено
  2. Exception брошенное: IllegalStateException - если этот узел (или предок) был удален с RemoveNode () или NullPointerException - если значение равно нулю
Смежные вопросы