3

JXTreeTable の上に JPanel をロードしました。JPanel が JXTreeTable の特定のセルと重なっているかどうかを判断したいと考えています。X成分とY成分を取り出して比較してみました。しかし、JPanel の最小 X 座標と Y 座標を確認すると、常に 0.0 です。私はそれを理解することができません。座標値を比較する以外に何かありますか?

4

2 に答える 2

3

Rectangleコンポーネントが重複しているかどうかを判断するために使用できるはずです。

すなわち

Rectangle panelBounds = panel.getBounds();
Rectangle cellBounds = getRowBounds(row); // getPathBounds(path);
if (panelBounds.intersects(cellBounds)) {
    // We have a collision
}

ここで、より大きな問題は、X/Y の戻り値が常に 0 であることです。これはRectangle、メソッドによる戻り値も 0getBoundsの x/y を返すことを意味します。

このコンポーネントのレイアウト方法を示すために、いくつかのコードを共有する必要があります。

于 2012-08-23T21:00:00.743 に答える
1

JComponents次の場合にのみ座標を決定できます。

  • すでに画面に表示されている

  • メソッドを呼び出した後pack()

より良いヘルプのために、SSCCEをすぐに投稿してください

于 2012-08-23T21:54:07.343 に答える