ホームページ  >  記事  >  JAVA: ボタンが押されたときに境界ペイン内のオブジェクトを移動します

JAVA: ボタンが押されたときに境界ペイン内のオブジェクトを移動します

PHPz
PHPz転載
2024-02-10 13:40:08506ブラウズ

php エディター Xinyi は今日、ボタンを押したときに枠線ペイン内のオブジェクトを移動するという興味深い Java プログラミング テクニックを紹介します。この手法により、ユーザー インターフェイスに対話性が追加され、ユーザーはボタンをクリックしてオブジェクトを移動できるようになります。この関数の実装方法は比較的単純で、ボタンのクリックイベントをリッスンし、イベント処理メソッドでオブジェクトの位置を更新するだけです。このようにして、より鮮明で興味深いインターフェイス エクスペリエンスをユーザーに提供できます。以下に、この手法の実装プロセスを詳しく紹介します。

質問内容

ペイン内に円を作成し、画面下部のボタンを使用して円を移動する宿題を行っています。ペインに円とボタンを表示させることはできますが、ボタンを押しても円が動きません。

私の主な方法は次のとおりです:

リーリー

円を移動する実際の方法はこちらです:

リーリー

ballcontrol メソッドの目的は、円を移動するとウィンドウの境界を越えるかどうかを確認し、そうでない場合は移動することです。しかし、ボタンを押しても円は動きません。

回避策

borderpane は「レイアウト ペイン」です。つまり、独自のアルゴリズムに従って子ノードをレイアウトします。特に、ノードがサイズ変更可能で、その最小サイズ、最大サイズ、推奨サイズで指定された制約内にある場合、borderpanecenter 領域内のノードを拡張して全体を埋めます。領域を指定し、その領域内の中央に配置します。 circle はサイズ変更できないため、その領域の中央にのみ配置されます。

円の centerx および centery 座標を変更しても、ここでは役に立ちません。円のレイアウト境界は、約 20x20 ピクセルの長方形になります (半径が 10 であるため、これは円を含む最小の長方形。ストロークには余分なスペースが必要な場合があるため、ここでは「ほぼ」とします)。長方形は中心半径から始まり中心半径まで広がる座標系を持ちますが、境界ペインのレイアウト ポリシーに従って中心領域の中心に配置されます。実際、円の中心の座標は変化しますが、これらの座標は円自体の座標系にのみ存在し、境界ペインの座標系には存在しません。

1 つの解決策は、レイアウトを実行しない通常の pane で円を囲み、paneborderpane の中央に配置することです。 pane はサイズ変更可能なため、borderpane は中央領域のフルサイズにサイズ変更します。 pane 円はレイアウトされていないため、追加のレイアウトを行わずに、centerxcentery で定義された座標に残ります。 (実際には、円の座標系をペインの座標系と同じにします。) これは、以下のコードで使用している解決策です。

もう 1 つの解決策は、円の translatex プロパティと translatey プロパティを操作することです。これらの変換はレイアウト後に適用されます。 ただし、この解決策では、円がコンテナの境界から出ないようにすることがより複雑になります。 (以下のコードではこの解決策を示していません。)

詳細については、レイアウト ドキュメントを参照してください。

これを機能させるための変更は次のとおりです。ウィンドウのサイズが変更されても機能するように、境界の計算方法も変更したことに注意してください。

リーリー

以上がJAVA: ボタンが押されたときに境界ペイン内のオブジェクトを移動しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。