Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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
单击JavaFX按钮移除卡_Java_Javafx_Fxml - Fatal编程技术网

单击JavaFX按钮移除卡

单击JavaFX按钮移除卡,java,javafx,fxml,Java,Javafx,Fxml,我正在制作看板,我有一个列,在里面,它用一个网格窗格划分在标题和下面的卡片列表之间。我正在使用场景生成器构建此场景 所以层次结构是 Anchor Pane(column) -> Gridpane(Seperate header and cards) -> Vbox(where I place my list of cards) -> AnchorPane(cards) -> Button(each card has a button) 当我按下卡上的按钮时,我希望它移除

我正在制作看板,我有一个列,在里面,它用一个网格窗格划分在标题和下面的卡片列表之间。我正在使用场景生成器构建此场景

所以层次结构是

Anchor Pane(column) -> Gridpane(Seperate header and cards) -> Vbox(where I place my list of cards) -> AnchorPane(cards) -> Button(each card has a button)
当我按下卡上的按钮时,我希望它移除我单击的卡

我已经做了以下工作

@FXML
public void delete() {
    Parent parent = button.getParent();
    col1.getChildren().remove(parent);  //col1 is the column
}

然而,当我按下按钮时什么也没有发生,卡没有被删除,我也不知道为什么。如果有人能帮我,那就太好了。

请尝试按如下方式更改代码:

@FXML
public void delete() {
    Parent card = button.getParent();
    ((VBox) card.getParent()).getChildren().remove(card);
}

请..@kleopatra我用scene builder制作GUI(它在一个fxml文件中),我怎样才能用它制作出最小的可复制代码?我不明白你在问什么-你怎么能不明白?我无法想象任何阻碍您提供。。您阅读了引用的帮助页,是吗;)场景生成器是一种用于FXML文件的工具。换句话说,它将内容保存到一个FXML文件中,然后您可以随意检查或修改该文件。为了提供应用程序,您必须提供启动应用程序所需的最小FXML文件、最小控制器类和最小代码。请记住,最低限度的代码仍然必须是完整的(如帮助页面中所述)。谢谢,这很有效。请问我的代码不起作用的原因是什么?不看你的代码很难知道。我不确定col1是指什么。如果它是
VBox
,那么它应该与我写的内容相同。但是,当您遇到问题时,一定是其他原因。col1指的是列,Vbox位于放置卡的列中。再次感谢您的帮助。是的,所以卡不是列的子项,而是VBox的子项。因此,您试图将其从列中删除不会产生任何效果。它只是被忽略。这只适用于一张卡,除非该卡有自己的fxml。。。(只有一个值可以存储在
按钮
字段中…)