java - 将单个数组列表项添加到单个磁贴
问题描述
我目前正在尝试将数组列表中的单个项目放入库存 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]
}
如何使用 ? 将每个人retString
放入每个图块中itemTile[i]
?
我对编码和 Java 比较陌生,所以我偷偷怀疑我把事情复杂化了。
解决方案
itemTile
如果您想在类似的方法中为数组赋值displayItems2
,有两种可能性:1)将引用传递给itemTile
intodisplayItems2
或 2)创建itemTile
类成员。
示例 1(传递参考):
private void displayItems2(HBox itemTile) {
// [...]
itemTile[i] = descs.get(i);
}
示例 2(类成员):
class MyClass {
// [...]
HBox itemTile;
// [...]
private void displayItems2() {
// [...]
itemTile[i] = descs.get(i);
}
}
推荐阅读
- mysql - 如何从具有超过 10 万条记录的数据库中删除重复的电子邮件?
- python - 如何在 Python 中创建简单的 ChatBot 时修复“xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0”错误
- java - 如何使用 Java 访问 ISBNDB 以查找一本书的信息?是否可以在不使用 Maven 或 Gradle 的情况下使用 ISBNDB api?
- python - 是否可以使用 XPATH 和 Selenium 从 Python 中的特定 div 开始计数?
- c++ - 在 CLion/Mingw 上未定义对“curl_easy_init”的引用
- powershell - 如何使用 WIQL 从 RESTful API 获取数据,但似乎无法正常工作
- javascript - 使用 dispatch() 时没有调用减速器
- r - 从分号分隔的电子邮件向量中提取具有特定域的电子邮件
- android - 如何从文本视图字段上的数据输入发送文本消息?
- protocol-buffers - 协议缓冲区:只读字段?