单击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。。。(只有一个值可以存储在按钮
字段中…)