【问题标题】:JavaFX Color Picker Custom Color In Table CellJavaFX颜色选择器在表格单元格中自定义颜色
【发布时间】:2017-06-25 05:05:10
【问题描述】:

我目前正在使用 JavaFX ColorPicker 在我的应用程序中选择颜色。 TableView 之外的那些按预期工作,但我遇到了TableView 中包含的问题。

我目前正在使用solution found at Michael Simons's siteTableCell 中实现自定义控件。它工作正常...直到您打开拾色器的Custom Color 对话框。此时,与自定义颜色对话框的任何交互都会关闭并提交编辑,这意味着您无法例如为特定颜色使用键入 RGB 代码。

在从该对话框提交自定义颜色值之前,如何保持打开状态?

【问题讨论】:

    标签: java user-interface javafx colors tableview


    【解决方案1】:

    找到解决方案;希望它可以帮助其他人搜索:

    原始解决方案使用更改侦听器来提交已编辑的表格单元格:

    this.colorPicker.valueProperty().addListener((observable, oldValue, newValue) -> {
        if(isEditing()) {
        commitEdit(newValue);
        }
    });
    

    但是,ColorPicker 自定义颜色窗口会在您拖动滑块或目标时持续更新值。结果,当您第一次单击时,侦听器会触发,而您最终会退出对话框。

    将此更改为针对isHiding 事件的事件侦听器可解决此问题。当您在自定义颜色窗口中单击 [保存][使用] 选择预设颜色时,ColorPicker 会隐藏。用这个替换上面的 sn-p,你就可以开始了!

    this.colorPicker.setOnHiding(event -> {
        if (isEditing()) {
            commitEdit(this.colorPicker.getValue());
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 2012-05-26
      • 2013-07-18
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      相关资源
      最近更新 更多