2010-01-11 219 views
1

我有以下問題:JScrollpane滾動條調整大小問題

我有JScrollPane包含圖像。

scrollpane在JPanel中與其他組件一起使用,以便能夠使用BorderLayout(scrollpane是CENTER,我在南部有東西)佈局整個事物。

此JPanel位於JSplitPane中。

JSplitPane終於在JFrame中。現在

JFrame 
{ 
JSplitpane 
{ 
    JPanel(BorderLayout) 
    { 
    JScrollPane(CENTER) 
    { 
    BufferedImage 
    } 

    JPanel(SOUTH) 
    {...} 
    } 
} 
} 

我的問題是,當我調整我的幀在滾動的圖像大小調整很好,直到它到達圖像大小。然後圖像被拉伸,我想要阻止。 我試着在一個帶有FlowLayout的佈局的JPanel中包裝JScrollPane。這適用於調整大小位,但滾動條消失,一旦我調整框架。

我覆蓋了scrollPane的setSize()方法,發現一旦框架被調整大小,滾動窗格的大小總是被設置爲圖像的大小。我不知道如何解決這個問題。

每一個提示是讚賞。

乾杯,

+0

我對這個奇怪的組件方案表示歉意。在預覽中看起來更好... – Ben 2010-01-11 10:55:01

+0

如何將圖像添加到滾動條中... – 2010-01-11 12:05:43

+0

我將子類scrollpane類和初始化期間加載了一個BufferedImage,我通過調用setViewportView()添加到視口中 – Ben 2010-01-11 14:12:08

回答

0

我相信,如果你打電話setMaximumSize()JScrollPaneBufferedImage的寬度/高度(但還沒有嘗試過),你應該是好的。

作爲一般評論:重寫Swing組件只是爲了添加子項是一個壞主意。相反,創建一個控制器類來創建和組成基礎組件。


我重讀了你的問題,並且想知道:圖像被拉伸的問題還是滾動條消失了?如果您想要在屏幕上保留滾動條,請查看setVerticalScrollBarPolicy()setHorizontalScrollBarPolicy()方法。

+0

對不起,使用答案按鈕。我是新來的,大部分時間,在你按下按鈕之後,有些東西是有意義的...... 無論如何,我解決了我的問題,當我編寫SSCEP時,我看到了這個問題。我混淆了maximumSize和preferredSize,並以某種方式設法將maximumSize始終設置爲在導致奇怪行爲的初始化之後的首選大小。 我現在有點聰明瞭,我猜... 感謝您的幫助。 本-B – Ben 2010-01-15 13:01:06