Как сделать видимыми переменные из одного метода (полученные при событии в приложении JavaFX) в другом методе?JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Как сделать видимыми переменные из одного метода (полученные при событии в приложении JavaFX) в другом методе?

Сообщение Гость »


Я учусь, и мне нужна помощь с программой, над которой я работаю. Программа для построения введенной функции. При нажатии на кнопку строится график. При перетаскивании точки (из ряда точек, соединенных линией, образующей график функции), на графике должно произойти изменение поля введенной функции. Перетаскивание точек реализовано с помощью технологии drag-n-drop. Далее содержимое коллекции записывается в два массива.

Как сделать переменные из одного метода (makeDraggable) видимыми в другом методе (plotterFunction), в котором при обходе списка используется цикл while? В коде методаplotterFunction есть листитератор для работы с коллекцией данных. Ниже приведена часть кода, с которой проблемы. Программа использует подключенную библиотеку javaluator.

int я = 0; частная пустота makeDraggable (узел узла) { node.setOnMousePressed(событие -> { startX = event.getSceneX() - node.getTranslateX(); startY = event.getSceneY() - node.getTranslateY(); System.out.println("х " + startX + "," + "у " + startY); }); node.setOnMouseDragged(event -> { node.setTranslateX(event.getSceneX() - startX); node.setTranslateY(event.getSceneY() - startY); }); node.setOnMouseReleased(событие -> { FinishX = event.getSceneX(); FinishY = event.getSceneY(); XYChart.Data dataPointFinish = новый XYChart.Data(finishX, FinishY); System.out.println("х " + FinishX + "," + "у " + FinishY); }); } ListIterator listIterator = series.getData().listIterator(); в то время как (listIterator.hasNext()) { dataPoint = listIterator.next(); Узел node = dataPoint.getNode(); makeDraggable (узел); node.setCursor(Курсор.РУКА); System.out.println(dataPoint); xValues = (double) (dataPoint.getXValue()); yValues = (double) (dataPoint.getYValue()); if ((xValues == startX) && (yValues == startY)) { индексX = я; } //series.getData().set(indexX, dataPointFinish);//NullPointerException System.out.println(indexX); System.out.println(dataPointFinish);//Null System.out.println(xValues); System.out.println(yValues); я++; } Ниже приведены сообщения из консоли. Введена функция x^2, введены значения минимального и максимального аргументов 0 и 5 соответственно. Количество точек для построения графика — 10.
Серия[x^2] Данные[0.0,0.0,ноль] 0 нулевой 0,0 0,0 Данные[0.5,0.25,ноль] 0 нулевой 0,5 0,25 Данные[1.0,1.0,ноль] 0 нулевой 1.0 1.0 Данные[1.5,2.25,ноль] 0 нулевой 1,5 2,25 Данные[2.0,4.0,ноль] 0 нулевой 2.0 4.0 Данные[2.5,6.25,ноль] 0 нулевой 2,5 6.25 Данные[3.0,9.0,ноль] 0 нулевой 3.0 9,0 Данные[3.5,12.25,ноль]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»