2011-08-21 142 views
3

我需要對JScrollPane中包含的JDesktopPane執行縮放。通過覆蓋paintComponent(...)方法並調用scale(double,double),我已事先獲得成功縮放。縮放和縮放

這是不正常工作:所述JInternalFrame的和JPanel的規模按預期運行,但MouseListener的用於JLabel的並且這樣的寄存器在預縮放位置。我能做什麼?謝謝你的閱讀。

+0

你不能縮放鼠標座標嗎? – Heisenbug

+0

對於帶有mouseListener的jlabel,mouseEntered(),mouseExited()...將其所有方法註冊到未縮放的位置。做一些像mouseEvent.getX()/ scaleFactor這樣的鼠標座標縮放並不能解決這個問題。 –

回答

3

ScaledPanel展示瞭如何使用明確的變換方法來擴展鼠標座標:scaleXscaleYunScaleXunScaleY。或者,您可以使用反轉換,如here所示。

+0

我已經知道如何縮放鼠標座標,這不是問題。但無論如何感謝。 –

+1

啊,我現在看到:你要看'mouseMoved()'並縮放座標以確定你自己的'mouseEntered()'。 – trashgod

+0

屏幕上有很多移動件,我希望我不必訴諸'碰撞檢測'。但好的,可能沒有更好的方法。 –