如何使用JavaFX GUI显示数组的内容

时间:2019-03-24 20:41:11

标签: java arrays javafx

我有一个数组,其中包含一个棋盘游戏的潜在动作。通知玩家当前游戏状态的显示面板在另一个文件中。我试图在显示面板中以菜单(或表格/组合框)的形式显示这种潜在的移动数组,但是由于两个代码位于单独的文件中,因此在访问数组时遇到问题。对于如何显示内容的任何想法将不胜感激。该数组在我的Main.java中,其中包含大量代码,但是我将在此处发布显示面板代码。该数组位于不返回任何内容并可以正常打印到控制台的函数中。我希望我能够预先指出我的问题,对此表示歉意。 displaymovels函数在Main.java中,而displayLabels函数在Displaypanel.java中。

我试图创建Main对象,但由于它扩展了Application(使用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 个答案:

答案 0 :(得分:1)

您可以使用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));
    }
}