Вниз  Java-программирование (1-ые посты)
- 27.06.2015 / 20:11
Pauk52
  Пользователь

Pauk52 
Сейчас: Offline
создано javafx приложение с формой приложенной в прикрепленных файлах. Как сделать что бы при нажатие на кнопку форма перерисовывалась в соответствие с функциями подразумеваемые под этими кнопками, например при нажатие на кнопку "просмотр" нужно нарисовать форму с таблицей размеченной в файле userview.fxml и т.д


Прикрепленные файлы:
Безымянный.png (5.62 кб.) Скачано 471 раз
- 27.06.2015 / 21:27
Naik
  Пользователь

Naik 
Сейчас: Offline
Pauk52, Попробуй в контроллер передавать ссылку на stage или както ее получить в контроллере по другому, ну и загрузить при нажатии нужную fxml через FXMLoader и установить его
myStage.setScene(loadedScene)

Передать stage можно так
  1. @Override
  2.     public void start(Stage primaryStage) throws IOException {
  3.  
  4.         FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml"));
  5.         Scene scene = new Scene(loader.load());
  6.         MainController controller = loader.getController();
  7.         controller.setMyStage(primaryStage);
  8.  
  9.         primaryStage.setTitle("test");
  10.         primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/icon.png")));
  11.         primaryStage.setScene(scene);
  12.         primaryStage.show();
  13.     }

В контроллере добавишь нужный метод, и получишь stage

Изменено Naik (27.06 / 21:33) (всего 2 раза)
- 28.06.2015 / 19:46
Pauk52
  Пользователь

Pauk52 
Сейчас: Offline
спасибо за прошлый ответ. Посоветуйте как хранить историю изменений данных. Например, есть класс Account и у него есть около 10 полей и они изменяемые, кроме поля login. Как сохранить историю изменений других полей?
- 28.06.2015 / 19:57
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
Зависит от того, как часто поля будут менятся, сколько изменений нужно хранить и т.д. В виде истории изменений, например. Какой-нибудь xml с элементами, как простой вариант.
  1. <change field="name" old_value="Philiph J Fry" />
В Java достаточно встроенных возможностей, чтобы легко работать с теми же XML.

Изменено mrEDitor (28.06 / 19:58) (всего 2 раза)
- 28.06.2015 / 20:01
Naik
  Пользователь

Naik 
Сейчас: Offline
mrEDitor, Тут достаточно txt я думаю
- 28.06.2015 / 20:02
HoldFast
  Пользователь

HoldFast 
Сейчас: Offline
  1. import java.util.prefs.Preferences;
  2. ....
  3. Preferences.userRoot().put("name", "data"); ///запись строки data с ключом name
  4. ....
  5. Preferences.userRoot().get("name", null); //null - значение по умолчанию, если нет записи name

__________________
 Да, детка, я - Король Ящериц!!!
- 6.07.2015 / 12:46
Aladdin
  Пользователь

Aladdin 
Сейчас: Offline
Всем привет, народ кто нибудь знает класс который решает арифметические выражения и возвращает ответ представленной в виде строки , типа
  1. String a = "12+ (54/5*3 - 47)";
  2.  
  3. int value = Parser.parse(a);

поискал инфу в инете там только непонятная теория и прочее. Заранее спасибо.
- 6.07.2015 / 12:53
HoldFast
  Пользователь

HoldFast 
Сейчас: Offline
https://ru.wikipedia.org/wiki/Обратная_польская_запись
На сайте, если не ошибаюсь, Витя выкладывал свою программу, использующую польскую запись
__________________
 Да, детка, я - Король Ящериц!!!
- 6.07.2015 / 12:54
HoldFast
  Пользователь

HoldFast 
Сейчас: Offline
Вот, нашёл код
  1. static boolean isDelim(char c) { // тру если пробел
  2.   return c == ' ';
  3.   }
  4.   static boolean isOperator(char c) { // возвращяем тру если один из символов ниже
  5.   return c == '+' || c == '-' || c == '*' || c == '/' || c == '%';
  6.   }
  7.   static int priority(char op) {
  8.     switch (op) { // при + или - возврат 1, при * / % 2 иначе -1
  9.     case '+':
  10.     case '-':
  11.       return 1;
  12.     case '*':
  13.     case '/':
  14.     case '%':
  15.       return 2;
  16.     default:
  17.       return -1;
  18.     }
  19.   }
  20.   static void processOperator(LinkedList<Integer> st, char op) {
  21.     int r = st.removeLast(); // выдёргиваем из упорядоченного листа последний элемент
  22.     int l = st.removeLast(); // также
  23.     switch (op) { // выполняем действие между l и r в зависимости от оператора в кейсе и результат валим в st
  24.     case '+':
  25.       st.add(l + r);
  26.       break;
  27.     case '-':
  28.       st.add(l - r);
  29.       break;
  30.     case '*':
  31.       st.add(l * r);
  32.       break;
  33.     case '/':
  34.       st.add(l / r);
  35.       break;
  36.     case '%':
  37.       st.add(l % r);
  38.       break;
  39.     }
  40.   }
  41.     public static int eval(String s) {
  42.     LinkedList<Integer> st = new LinkedList<Integer>(); // сюда наваливают цифры
  43.     LinkedList<Character> op = new LinkedList<Character>(); // сюда опрераторы и st и op в порядке поступления
  44.     for (int i = 0; i < s.length(); i++) { // парсим строку с выражением и вычисляем
  45.       char c = s.charAt(i);
  46.       if (isDelim(c))
  47.         continue;
  48.       if (c == '(')
  49.         op.add('(');
  50.       else if (c == ')') {
  51.        while (op.getLast() != '(')
  52.         processOperator(st,op.removeLast());
  53.         op.removeLast();
  54.       } else if (isOperator(c)) {
  55.         while (!op.isEmpty() && priority(op.getLast()) >= priority(c))
  56.         processOperator(st, op.removeLast());
  57.         op.add(c);
  58.       } else {
  59.         String operand = "";
  60.         while (i < s.length() && Character.isDigit(s.charAt(i)))
  61.         operand += s.charAt(i++);
  62.         --i;
  63.         st.add(Integer.parseInt(operand));
  64.       }
  65.     }
  66.     while (!op.isEmpty())
  67.       processOperator(st, op.removeLast());
  68.     return st.get(0);  // возврат результата
  69.   }

__________________
 Да, детка, я - Король Ящериц!!!
- 6.07.2015 / 12:56
HoldFast
  Пользователь

HoldFast 
Сейчас: Offline
  1. String a = "12+ (54/5*3 - 47)";
  2.  
  3. int value = eval(a);

__________________
 Да, детка, я - Король Ящериц!!!
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)