【发布时间】:2015-02-06 09:38:34
【问题描述】:
这是我第一次在这里问,如果我做错了什么对不起(也不是我的母语)。
最近,我从 Swing&AWT 转到 JavaFX。
我发现了与 Swing 版本完全不同的新 Table。我会说,它需要更少的操作和做更多的事情,但是……主啊,这更难理解!
我目前正在尝试动态修改 TableView。虽然 addColumn 方法不是一个大挑战,但我的 deleteColumn 方法需要帮助:/
说说我的问题吧:
我有一个场景,上面有很多组件(窗格、按钮、菜单……),一个窗格(实际上是锚窗格)承载一个 TableView。
我想在此操作发生时动态删除一整列: 用户右键单击 TableView > 显示上下文菜单 > 他选择“删除”项
因此,基本上是一个上下文菜单,提供删除用户右键单击的列的选项。
我试过了:
-> 当用户在 TableView 上右击时,会调用这个方法:
public void setTargetForContext(ContextMenuEvent event){
if(event.getTarget() instanceof Label){
ObservableList list =(((Label)event.getTarget()).getChildrenUnmodifiable());
activeColumn = ((Text)((ObservableList)list)).getText();
}...
目标是在“activeColumn”中设置列名。
然后,当用户从上下文菜单中选择“删除”选项时,将调用另一个方法来比较列名并删除正确的列。
但似乎我不能在标签上调用 getChildren() 方法,只能调用不可修改的方法。而且它不允许强制转换并抛出异常。
你有解决办法让我得到列名吗?
或者也许我走错了路,我必须找到另一种方法来删除右键单击的列,但在这种情况下,我也需要你的帮助。
非常感谢您的阅读,并提前感谢您的帮助。
【问题讨论】: