this answerを見ながら学んだことを使って、私はカスタムペインを実装したいと思います。 BackgroundEffectPaneと呼ばれるこのペインの主な目的は、効果を得て背景にのみ適用することです。これにより、リンクされた回答の半透明の背景StackPaneをはるかにクリーンな方法で実装することができます。JavaFXでペインを拡大する
これまでのところ、PaneとNodeのドキュメントを読んだことがあります。これまでは、これを可能な限りきれいにするために上書きする明白な方法はありませんでした。関連性があると私を殴る唯一の事はペインのgetChildren()メソッドです。
これは上書きするのが適切ですか?
ペインはサブクラスの正しいクラスですか?
TLDR:カスタムペインを作成しようとしていますが、どのメソッドをオーバーライドしますか。私がしようとしているのは、バックグラウンドにエフェクトを加えることだけです。
どちらの場合でも、「BackgroundEffectPane」の内部動作に干渉しているユーザーフォームが停止することはありません。彼らはいつも私が戻ってきたツリー、親、またはコンストラクタのいずれかを使いこなすことができます。 –
後者の場合、「親」は子供の変更不可能なリストしか公開しないので、ダウンキャスト(基本的に信仰の飛躍)が必要ですが、一般的にはそうです。しかし、2番目の方法は、それを使った他のコードを壊さずに実装を変更できるようにする柔軟性があります(あなたは常にそのバージョンの 'StackPane'を使うことを約束していません)。 –
サブクラス化アプローチを本当に使いたい場合は、 'Region'のサブクラス化と' layoutChildren() 'と' Pref/Min/MaxWidth/Height'メソッドのオーバーライドを検討してください。 –