Доступ к переменным из Controller(javafx)

189
01 февраля 2020, 13:50

У меня есть два класса: Controller: public class Controller {

@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
private Tab mainTab = new Tab();
@FXML
private Tab task1 = new Tab();
@FXML
private TextField lineOfNumbers = new TextField();
@FXML
private Button addInfo1 = new Button();
@FXML
public static TextArea sortedNumbers = new TextArea();
@FXML
private Tab task2;
@FXML
private TextField numberOfObjects;
@FXML
private Button addInfo2;
@FXML
private TextArea resultOfMethods;
@FXML
private Tab task3;
@FXML
private TextField numberOfParcels;
@FXML
private TextArea resultOfParcels;
@FXML
private Button addInfo3;
@FXML
private Tab task4;
@FXML
private TextField numberOfWorkers;
@FXML
private TextField numberOfDetails;
@FXML
private TextArea resultOfWork;
@FXML
private Button addInfo4;
@FXML
private Button addInfo5;
private static String[] args;
@FXML
void initialize() {
    addInfo1.setOnAction(e -> {
        sortedNumbers.setText("");
        args = new String[1];
        args[0] = lineOfNumbers.getText();
        main.main(args);
    });
}

}

и класс Main(Task 1):

public class Main { static public void main(String[] args) {

    if (args[0].length() == 0) {
        Controller.sortedNumbers.appendText("You should write one parameter!");
        return;
    }
    try {
        char[] symbols = args[0].toCharArray();
        for (int i = 0; i < symbols.length; i++) {
            if (symbols[i] == ' ') {
                Controller.sortedNumbers.appendText("You should write one parameter!");
                return;
            }
        }
        String[] num_array = new String[symbols.length];
        boolean flag = false;
        boolean minus = false;
        int num = 0;
        int index = 0;
        for (int i = 0; i < symbols.length; i++)
            num_array[i] = "";
        for (int i = 0; i < (symbols.length - 1); i++) {
            if (((symbols[i + 1] >= '0') && (symbols[i + 1] <= '9')) && (symbols[i] == '-')) {
                minus = true;
            }
            if (!((symbols[i + 1] >= '0') && (symbols[i + 1] <= '9')) && (symbols[i] == '-')) {
                minus = false;
            }
            if (!((symbols[i] >= '0') && (symbols[i] <= '9')) && !(symbols[i] == '-')) {
                minus = false;
            }
            if ((symbols[i] >= '0') && (symbols[i] <= '9') && !(minus)) {
                flag = true;
                num_array[index] += symbols[i];
                if ((i == (symbols.length - 2)) && ((symbols[i + 1] >= '0') && (symbols[i + 1] <= '9'))) {
                    num = 1;
                }
            } else {
                if (flag) {
                    index++;
                    flag = false;
                } else {
                    continue;
                }
            }
        }
        index++;
        if (num == 1) {
            num_array[index - 1] += symbols[symbols.length - 1];
        } else {
            if ((symbols[symbols.length - 1] >= '0') && (symbols[symbols.length - 1] <= '9') && (minus == false)) {
                num_array[index - 1] = "0" + symbols[symbols.length - 1];
            }
        }
        if ((index == 1) && (num_array[index - 1] == "")) {
            Controller.sortedNumbers.appendText("There aren't non-positive numbers!\n");
            return;
        }
        if ((index == 2) && (num_array[index - 1] == "")) {
            index--;
        }
        if (num_array[index - 1] == "") {
            index--;
        }
        int numbers[] = new int[index];
        for (int i = 0; i < index; i++) {
            numbers[i] = Integer.parseInt(num_array[i]);
        }
        int temp;
        for (int i = 0; i < index; i++) {
            for (int j = 0; j < index; j++)
                if (numbers[i] < numbers[j]) {
                    temp = numbers[i];
                    numbers[i] = numbers[j];
                    numbers[j] = temp;
                }
        }
        //controller.sortedNumbers.appendText("String as the paramater - " + args[0] + "\n");
        Controller.sortedNumbers.appendText("Numbers founded in this string: \n");
        for (int i = 0; i < index; i++) {
            System.out.println(((i + 1) + ": " + num_array[i]) + "\n");
        }

        Controller.sortedNumbers.appendText("Sorted numbers: \n");
        for (int i = 0; i < index; i++) {
            Controller.sortedNumbers.appendText(((i + 1) + ": " + numbers[i]) + "\n");
        }
    }
    catch(NumberFormatException err) {
        Controller.sortedNumbers.appendText("NumberFormatException: " + err.getMessage());
    }
}

}

Если я вывожу данные в sortedNumbers, ничего не получается. Если вывожу в консоли, то все работает. Как мне сделать так, чтобы выводилось в TextArea(то есть в sortedNumbers)?

READ ALSO
Как подключаться к серверу с помощью RCON?

Как подключаться к серверу с помощью RCON?

Ищу подходящую библиотеку для подключения к серверу, но все они ужасны или не работают (Запрос отправляется, а ответа нету)Подскажите подходящую...

160
Оптимизация обновления RecyclerView

Оптимизация обновления RecyclerView

Все мы знаем хрестоматийный пример работы с RecyclerView:

165