我正在構建一個處理截圖的小型Java應用程序。 我有一個自定義的類,它繼承自JPanel,名爲ScreenshotPanel,它保存圖像,它位於JScrollPane中。 ScrollPane在框架大小調整時移動並調整大小。 除縮放部分之外的所有其他效果都很好,我希望能夠控制ScrollPane中的screenshotPanel的大小,但是screenshotPanel不會調整大小,它會以合適的大小閃爍片刻,但隨後它會被調整回到ScrollPane大小。正確調整JScrollPane及其內容的大小
如果我使用不帶ScrollPane的screenshotPanel,它的工作原理是正確的,但我希望它能自動添加滾動條,以便您可以在放大時看到移動圖像。
這裏是我使用來調整代碼的一部分:
double AR=((double)screenshotPanel.getImage().getHeight())/screenshotPanel.getImage().getWidth();
screenshotPanel.setSize((int)((getWidth()-180)*zoomFactor), (int)((AR*(getWidth()-180)-100)*zoomFactor));
scrollPane.setSize(getWidth()-180, (int)(AR*(getWidth()-180))-100);
-180和-100是用來保持一空間,按鈕和變焦控制其它的組件(其中所有移動和調整完美), zoomFactor是一個保存放大量的雙精度值。
如何在沒有ScrollPane的情況下調整ScrollPane中的screenshotPanel強制其大小?
閃爍從JViewport的或JScrollBars或邊界或其他???引起的,一切都只會有拍攝,沒有SSCCE的黑暗 – mKorbel
問題是你試圖在JLabel中使用ImageIcon,或者你使用BuferrefedImage或scaledInstance(簡單地是異步) – mKorbel
你是對的我應該提到,我使用了一個BufferedImage作爲screenshotPanel的圖像。 – Bob