本文介紹了如何在JScrollPane中使垂直和水平滾動條居中?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有一個JPanel,其中有一個JLabel,添加到JScrollPane中。我有一個調用JLabel.setIcon("file.jpg");
的actionListener。圖像正確地顯示在JScrollPane中并且是全尺寸的。滾動條顯示得非常完美。默認情況下,我嘗試將垂直和水平滾動條放置在中間,這樣默認情況下您會看到圖像的中心。
是否有JScrollPane方法可以將視區定位在圖像的中心?或者,我可以手動將每個滾動條的位置設置為最大尺寸除以2嗎?
我已嘗試
JScrollPane.getVerticalScrollBar().setValue(JScrollPane.getVerticalScrollBar().getMaximum() / 2);
當它編譯時,它不會使滾動條居中。我還嘗試將JPanel的布局管理器設置為GridBagLayout,但也不起作用。
推薦答案
基本上,您需要知道視區的可視區域的大小。
Rectangle bounds = scrollPane.getViewport().getViewRect();
然后您需要該組件的大小,但一旦將其添加到滾動窗格中,您就可以從查看端口獲得該大小…
Dimension size = scrollPane.getViewport().getViewSize();
現在您需要計算中心位置…
int x = (size.width - bounds.width) / 2;
int y = (size.height - bounds.height) / 2;
然后您只需調整視窗位置…
scrollPane.getViewport().setViewPosition(new Point(x, y));
現在,請記住,只有在屏幕上實現了滾動窗格(或者至少在其父容器中進行了布局),這才能起作用
這篇關于如何在JScrollPane中使垂直和水平滾動條居中?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,