[英]JavaFX Color Picker Custom Color In Table Cell
我目前正在使用JavaFX ColorPicker
在我的应用程序中选择颜色。 TableView
之外的工作按预期工作,但我遇到了TableView
包含的问题。
我目前正在使用Michael Simons网站上的解决方案在TableCell
实现自定义控件。 它工作正常......直到你打开拾色器的Custom Color
对话框。 此时,与自定义颜色对话框的任何交互都会关闭并提交编辑,这意味着您无法作为示例在RGB代码中键入特定颜色用法。
在此对话框中提交自定义颜色值之前,如何保持此打开状态?
找到了解决方案; 希望它可以帮助其他人搜索:
原始解决方案使用更改侦听器提交已编辑的表格单元格:
this.colorPicker.valueProperty().addListener((observable, oldValue, newValue) -> {
if(isEditing()) {
commitEdit(newValue);
}
});
但是,在拖动滑块或目标时, ColorPicker
自定义颜色窗口会不断更新值。 因此,当您第一次单击时,侦听器将会触发,您最终会退出对话框。
将此更改为针对isHiding
事件的事件侦听器可修复此问题。 选择预设颜色或单击自定义颜色窗口中的[保存]或[使用]时, ColorPicker
隐藏。 用这个替换上面的代码片段,你很高兴!
this.colorPicker.setOnHiding(event -> {
if (isEditing()) {
commitEdit(this.colorPicker.getValue());
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.