2017-02-07 8 views
1

私は現在、アプリケーションで色を選択するのにJavaFX ColorPickerを使用しています。 TableViewの外にあるものは期待どおりに動作しますが、TableViewに記載されている問題が発生しました。JavaFXカラーピッカーカスタムセルの表色セル

私は現在、solution found at Michael Simons's siteを使用してTableCellでカスタムコントロールを実装しています。カラーピッカーのCustom Colorダイアログを開くまで、正常に機能します。この時点で、カスタムカラーダイアログボックスとのやりとりはすべて終了して編集をコミットします。つまり、例として、特定のカラー使用のためのRGBコードをキー入力することはできません。

このダイアログボックスでカスタムカラー値が確定するまで、これを開いたままにするにはどうすればよいですか?

答えて

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()); 
    } 
}); 
関連する問題