Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将单个阵列列表项添加到单个磁贴_Java_Arrays_Arraylist - Fatal编程技术网

Java 将单个阵列列表项添加到单个磁贴

Java 将单个阵列列表项添加到单个磁贴,java,arrays,arraylist,Java,Arrays,Arraylist,我目前正在尝试将数组列表中的单个项目放置到清单GUI中的单个分幅中。所有磁贴都已设置,我可以在控制台行中单独显示每个阵列列表项 这是一个简单的GUI: 这是我迄今为止的尝试 HBox itemTile[] = new HBox[31]; for (int i = 0; i < 30; i++) { Button deleteButton = new Button("Delete Item"); deleteButton.setOnAction((A

我目前正在尝试将数组列表中的单个项目放置到清单GUI中的单个分幅中。所有磁贴都已设置,我可以在控制台行中单独显示每个阵列列表项

这是一个简单的GUI:

这是我迄今为止的尝试

HBox itemTile[] = new HBox[31];
    for (int i = 0; i < 30; i++) {
        Button deleteButton = new Button("Delete Item");
        deleteButton.setOnAction((ActionEvent event) -> {
            displayItems2(); //temp info to console - delete item code to be added
                JOptionPane.showMessageDialog(null, "Item has been deleted", null, 1);
        });

        itemTile[i] = new HBox(new Label("Item: " + i + "   "));
        itemTile[i].setStyle("-fx-border-color: black;");
        itemTile[i].setPadding(new Insets(5));
        itemTile[i].getChildren().add(deleteButton);
        itemTile[i].setAlignment(Pos.CENTER_LEFT);
        itemTile[i].setStyle("-fx-background-color: #e5efff; -fx-border-color: black;");
        this.getChildren().add(itemTile[i]);
    }
}

    private void displayItems2(){
        this.getChildren().removeAll(this.getChildren());
        displayInvStructure();
        ArrayList<String> descs = InventoryManager.getInstance().getItemDescriptions();
        for (int i = 0; i < descs.size(); i++) {
            String retString = descs.get(i);
               System.out.println("Array item is = " + " " + i + " " + retString);
               }
        //If i = itemTile[i]
        //Add retString to itemTile[i]
    }
hboxitemtile[]=新的HBox[31];
对于(int i=0;i<30;i++){
按钮删除按钮=新按钮(“删除项”);
deleteButton.setOnAction((ActionEvent事件)->{
displayItems2();//控制台的临时信息-删除要添加的项目代码
showMessageDialog(null,“项目已被删除”,null,1);
});
itemTile[i]=新HBox(新标签(“项目:+i+”));
itemTile[i].setStyle(“-fx边框颜色:黑色;”);
itemTile[i].setPadding(新插图(5));
itemTile[i].getChildren().add(deleteButton);
itemTile[i]。设置对齐(位置居中左);
itemTile[i].setStyle(“-fx背景色:#e5efff;-fx边框色:黑色;”);
this.getChildren().add(itemTile[i]);
}
}
私有void displayItems2(){
this.getChildren().removeAll(this.getChildren());
displayInvStructure();
ArrayList descs=InventoryManager.getInstance().getItemDescriptions();
对于(int i=0;i
如何使用
itemTile[I]
将每个
retString
放置到每个磁贴中


我对编码和Java比较陌生,所以我有一种隐约的怀疑,我把事情复杂化了。

如果你想给像
displayItems2
这样的方法中的
itemTile
数组赋值,有两种可能性:1)将对
itemTile
的引用传递到
displayItems2
中,或2)使
itemTile
成为类成员

示例1(传递引用):

示例2(类成员):

private void displayItems2(HBox itemTile) {
    // [...]
    itemTile[i] = descs.get(i);
}       
class MyClass {

    // [...]
    HBox itemTile;

    // [...]
    private void displayItems2() {
       // [...]
       itemTile[i] = descs.get(i);
    }
}