Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Сохранение параметров приложения

Поиск:
Спасибо большое Andyb за предоставленную информацию

В очередной раз решил поделиться опытом: Значит была у меня такая задача - нужно было сделать так, чтобы параметры приложения(н-р:начальное расположение и размер окна, шрифты и т.д.) мог изменить пользователь(из программы соответственно).
Возник вопрос: как это реализовать. В пакете java.util есть класс Properties, который читает параметры из локального файла, который можно поместить куда угодно НО! не с такими пользователями как мои. Они могут залезть в файл *.properties и что-нибудь изменить, в результате чего программа может не работать.
Копаясь в документации, я нашел класс java.util.Preferences, который записывает параметры в реестр(для винды).
Вот пример такой программы. Она записывает координаты начального расположения и размеры окна в реестр(для винды), а при следующем запуске считывает эти данные:
Код
import java.awt.*;
import java.awt.event.*;
import java.util.prefs.*;
import javax.swing.*;
import javax.swing.event.*;

public class Test
{
  public static void main(String[] args)
  {
     TestFrame frame = new TestFrame();
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.show();
  }
}
class TestFrame extends JFrame{
   Preferences root = Preferences.userRoot();
   Preferences node = root.node("ru/vingrad/preftest");  
   
  public TestFrame(){
   try{
       init();
   }
   catch(Exception e){
    e.printStackTrace();
   }
  }
private void init() {
Container contentPane = getContentPane();
   JLabel p = new JLabel();
   //p.setIcon(new ImageIcon(getClass().getResource("logo.gif")));
   contentPane.add(p, BorderLayout.CENTER);  
   setTitle("Registr test");
   int left = node.getInt("left", 0);
   int top = node.getInt("top", 0);
   int width = node.getInt("width", 400);
   int height = node.getInt("height", 300);
   setBounds(left, top, width, height);
   addWindowListener(new java.awt.event.WindowAdapter() {
     public void windowClosing(WindowEvent e) {
              node.putInt("left", getX());
              node.putInt("top", getY());
              node.putInt("width", getWidth());
              node.putInt("height", getHeight());
     }
   });
}

}

После запуска программы измените ее размеры и расположение, затем перезапустите ее. Расположение и размер окна будет таким как и до перезапуска.
Для винды можно посмотреть запись в реестре по адресу HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru\vingrad\preftest
Работающий JavaWebStart пример здесь
Автор: AntonSaburov
Сайт: http://






Просмотров: 3784

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную