Как отобразить содержимое массива с помощью JavaFX GUI - PullRequest
0 голосов
/ 24 марта 2019

У меня есть массив, содержащий потенциальные ходы для настольной игры в одном файле.Панель дисплея, которая информирует игроков о текущем состоянии игры, находится в другом файле.Я пытаюсь отобразить этот потенциальный массив перемещений в виде меню (или таблицы / комбинированного окна) на панели дисплея, но у меня возникают проблемы с доступом к массиву, поскольку оба кода находятся в отдельных файлах.Любые мысли о том, как я мог бы отобразить содержимое, будет принята с благодарностью.Массив находится в моем Main.java, который содержит множество кода, но я опубликую код панели дисплея здесь.Массив находится в функции, которая ничего не возвращает и выводит на консоль в порядке.Я надеюсь, что смог сформулировать свою проблему, заранее извиняюсь.Функция convertmoves находится в Main.java, а функция displayLabels - в Displaypanel.java

Я пытался создать объект Main, но это невозможно, поскольку он расширяет приложение (используя JavaFX).

public void calculateMoves(int dice1, int dice2){
    String[] potentialMoves = new String[500];
    int k=0;        
    ....

    System.out.println("reach");
    System.out.println("k: "+k);
    for(k=k-1; k>=0; k--){
        System.out.println(potentialMoves[k]);
    }
    ChoiceBox<String> choiceBox = new ChoiceBox<>();
    choiceBox.getItems().addAll(potentialMoves);
}

public void displayLabels(){
    if(gridSize < 31) {
        int numOfLabels = gridSize;
        int j = 0;
        for (int i = numOfLabels; i > numOfLabels - 31; i--) {
            GridPane.setConstraints(labels[i - 1], 0, j);
            grid.getChildren().addAll(labels[i - 1]);
            j++;
            if (i - 1 == 0) break;
        }
 }

13-7 8-3 13-7 7-2 24-18 8-3 24-18 13-8 24-18 18-13 должны быть напечатаны как меню.Именно такой результат я сейчас получаю на своей консоли.

1 Ответ

1 голос
/ 25 марта 2019

Вы можете использовать ComboBox. Похоже, это действительно простой способ.

class YourController implements Initializable{
    @FXML
    private JFXComboBox<String> cccombo;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        ArrayList<String> yourArray = new ArrayList<>();
        //fill your array
        cccombo.setItems(FXCollections.observableList(yourArray));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...