TornadoFX - 使用ContextMenu右键单击选项删除项目

时间:2016-08-08 08:42:28

标签: kotlin tornadofx

所以我有一个表格视图,显示<ul class="sub-menu" style="border-right: 2px solid #012340;"> <?php foreach($outContentArrResults AS $courseName=> $valArrMenu){ ?> <li class="menu-item-has-children"> <a href="#"><?php echo isset($valArrMenu[0]) ? $valArrMenu[0]:'';? ></a> <ul class="sub-menu" style="border-right: 2px solid #012340;border-left: 2px solid #012340;"> <?php for($i=0; $i<count($valArrMenu['slug']); $i++){?> <li> <a href="<?php echo $config['LIVE_URL'];?>courses/<?php isset($valArrMenu['slug'][$i]) ? $valArrMenu['slug'][$i]:'';?>"><?php echo isset($valArrMenu[$i]) ? $valArrMenu[$i]:'';?></a> </li> <?php } ?> </ul> </li> <?php } ?> </ul> 个帐户 Array ( [mainCourse] => Array ( [0] => linux [slug] => Array ( [0] => linux [1] => linux-basics [2] => first-steps [3] => last [4] => sdd [5] => css [6] => css-basics [7] => css-introduction [8] => linux-sub [9] => test-sub-sub-linux ) [1] => linux Basics [2] => first steps [3] => last [4] => sdd [5] => css [6] => css Basics [7] => css Introduction [8] => linux sub [9] => test sub sub linux ) ) $arrCourses = $this->objWsCoursesModel->getMainMenuCourses(); //print_r($arrCourses); $outResults = array(); for($i=0; $i<count($arrCourses); $i++){ $courseName = isset($arrCourses[$i]['course_name']) ? $arrCourses[$i]['course_name'] : ''; $outResults['mainCourse'][] = $courseName; $outResults['mainCourse']['slug'][] = isset($arrCourses[$i]['course_slug_name']) ? $arrCourses[$i]['course_slug_name'] : ''; } ,这些是数据类。当我右键单击一个单元格时,会弹出一个删除选项。我想要做的是从observedArrayList

中删除Account(name, login, pass)

只有我找不到任何办法这样做。我对JavaFX或TornadoFX没有经验,我也无法通过谷歌或TornadoFX指南和文档找到答案。

这是我的代码:

Account

谢谢!

2 个答案:

答案 0 :(得分:1)

selectedItem是您选择/右键单击的项目。 然后,您可以使用arraylist.remove(selectedItem)

答案 1 :(得分:1)

为了澄清@Martacus的回答,在您的情况下,您只需要将// HERE IS WHERE THE ITEM DELETE CODE SHOULD BE替换为accounts.remove(this)并且您已经开始营业。

您也可以替换

selectedItem?.apply{ accounts.remove(this) }

selectedItem?.let{ accounts.remove(it) }

根据我的经验,当您使用值而不是设置接收器时,letapply更常见。

请注意,如果accounts列表是异步构造并复制的,则该过程会有所不同,这是asyncItems { accounts }的默认行为。