我目前正在使用JavaFX ColorPicker
在我的应用程序中选择颜色。 TableView
之外的工作符合预期,但我遇到TableView
中包含的问题。
我目前正在使用solution found at Michael Simons's site在TableCell
中实施自定义控件。它工作正常......直到您打开拾色器的Custom Color
对话框。此时,与自定义颜色对话框的任何交互都将关闭并提交编辑,这意味着您无法作为示例键入RGB代码中的特定颜色用法。
在此对话框中提交自定义颜色值之前,如何保持此状态?
答案 0 :(得分:0)
找到解决方案;希望它可以帮助其他人搜索:
原始解决方案使用更改侦听器提交已编辑的表格单元格:
this.colorPicker.valueProperty().addListener((observable, oldValue, newValue) -> {
if(isEditing()) {
commitEdit(newValue);
}
});
但是,ColorPicker
自定义颜色窗口连续会在您拖动滑块或目标时更新值。因此,第一次点击时,听众会激活,你最终会退出对话框。
将此更改为针对isHiding
事件的事件侦听器可修复此问题。当您在自定义颜色窗口中点击 [保存] 或 [使用] 时,选择预设颜色或时隐藏ColorPicker
。用这个替换上面的代码片段,你很高兴!
this.colorPicker.setOnHiding(event -> {
if (isEditing()) {
commitEdit(this.colorPicker.getValue());
}
});