我正在使用Java教程如何使用JScrollPane(帶有行/列標題)的示例。該示例使用JLabel的子類在「視口視圖」中顯示圖像。我使用示例代碼來顯示行/列標題(Rule.java example code),並且在奇怪的結果中感到困惑。我最終刪除了對getClipBounds()的調用(顯然用於確定哪些區域的行/列標題是可見的,只繪製該區域)並繪製整個標題,問題就解決了。這意味着我現在正在繪製整個區域(在行/列標題和主視口中)。這讓我感到非常不理想。Java:我只負責繪製(JScrollPane)視口視圖的可見區域嗎?
- 任何人都可以解釋爲什麼Java教程示例工作正常(大於源另一種是不一樣的,在示例中執行)?
- 即使只是部分可見,是否可以繪製整個窗格對我來說是否正確?
- 如何確定整個對象的哪些區域在視口中可見(對於行/列標題和主視口),以便我可以僅繪製該區域?
UPDATE:
我仍然不知道爲什麼示例工作,但我發現,如果我用JComponent.getVisibleRect()而不是Graphics.getClipBounds()事情似乎工作如預期。不知道這是否正確使用此方法。
我們需要查看您的代碼,告訴您爲什麼您的工作不正常。 – Michael 2012-04-25 16:52:13