Значение по умолчанию для JCheckBoxMenuItem
Я пытаюсь добавить меню параметров в мою программу, с возможностью изменения параметров с помощью JCheckBoxMenuItems. Независимо от значения этих параметров, они будут сохранены в файл при закрытии программы. Файл будет прочитан при запуске программы, и значения, установленные на логическое значение, будут считаны. (Т. Е. Рядом с элементом появляется галочка, если считываемое значение истинно, и нет, если значение ложно),
Это то, что я до сих пор:
boolean soundEnabled = true;
JMenu fmOptionsMenu = new JMenu("Options");
fileMenu.add(fmOptionsMenu);
JCheckBoxMenuItem omSoundEnable = new JCheckBoxMenuItem("Enable Sound");
omSoundEnable.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent arg0) {
soundEnabled = !soundEnabled;
}
});
fmOptionsMenu.add(omSoundEnable);
Как я могу установить значения по умолчанию, и является ли PropertyChangeListener правильным для использования?
3 ответа
Независимо от значения этих параметров, они будут сохранены в файл при закрытии программы. Файл будет прочитан при запуске программы, и значения, установленные на логическое значение, будут считаны. (Т. Е. Рядом с элементом появляется галочка, если считываемое значение истинно, и нет, если значение ложно),
использовать JCheckBoxMenuItem.setSelected(логическое значение b),
isSelected()
setSelected
перед любым изListener
Добавлено вJCheckBoxMenuItem
, так какPropertyChangeListener
может запустить надлежащее событие изpropertyChange
в случае, если значение устанавливается позже, конечно, зависит от того, что вы действительно хотите сделатьЯ бы использовал
Swing Action
,ItemListener
,ActionListener
для JButtonComponents
Использование java.util.Preferences
чтобы сохранить soundEnabled
государство; полный пример приведен здесь. В общих чертах,
Определите начальное состояние по умолчанию:
private static final boolean DEFAULT_SOUND_ENABLED = true;
иллюстрировать примерами
Preferences
:Preferences p = Preferences.userRoot().node("org").node("foo").node("Bar");
Получить предпочтительное состояние или определенный по умолчанию:
public static boolean getSoundEnabled() { return p.getBoolean("soundEnabled", DEFAULT_SOUND_ENABLED); } ... private boolean soundEnabled = getSoundEnabled();
Сохраните новое значение, вызываемое из прослушивателя меню:
public static void putSoundEnabled(boolean soundEnabled) { p.putBoolean("soundEnabled", soundEnabled); }
Как я могу установить значения по умолчанию
Вы можете использовать файл свойств для хранения значений по умолчанию.
PropertyChangeListener правильный, чтобы использовать?
Когда программа закрывается, вы можете просто запросить текущее состояние каждого компонента, а затем сохранить значение в файле свойств.