2015-03-18 26 views
0

我已經將Janel添加到JScrollPane。在java中滾動時,視圖會變形

JPanel有很多元素,比如標籤,面板按鈕等。當我滾動時,視圖會變形,我不知道爲什麼,因爲我已經加倍檢查代碼。這是什麼原因?是否應該進行重繪?

enter image description here

pgLaPanel pnlMain = new pgLaPanel(); 
       pnlMain.setLayout(new BoxLayout(pnlMain, BoxLayout.Y_AXIS)); 
       pnlMain.setPreferredSize(new Dimension(1250,765)); 
       pnlMain.add(pnlTop); 
       //pnlTop.setVisible(true); 
       pnlMain.add(pnlLow); 
       pnlLow.setVisible(true); 

    JPanel pnlLadder = new JPanel((LayoutManager) new FlowLayout(FlowLayout.LEFT)); 
      pnlLadder.setLayout(new BoxLayout(pnlLadder, BoxLayout.Y_AXIS)); 
      pnlLadder.setBackground(new Color(0,0,0,0)); 
      pnlLadder.add(pnlTitle); 
      pnlLadder.add(pnl1n2); 
      pnlLadder.add(pnl3n4); 
      pnlLadder.add(pnl5n6); 
      pnlLadder.add(pnl7n8); 
      pnlLadder.add(pnl9n10); 
      pnlLadder.add(pnl11n12); 
      pnlLadder.add(pnl13n14); 
      pnlLadder.add(pnl15n16); 
      pnlLadder.add(pnl17n18); 
      pnlLadder.add(pnl19n20); 
      pnlLadder.add(pnl21n22); 
      pnlLadder.add(pnl23n24); 
      pnlLadder.add(pnl25n26); 
      pnlLadder.add(pnl27n28); 
      pnlLadder.add(pnl29n30); 
      pnlLadder.add(pnlButtons); 


    final JScrollPane scrlLadder = new JScrollPane(); 
         scrlLadder.setViewportView(pnlLadder); 
         scrlLadder.setFont(pgMnCore.useFont); 
         scrlLadder.setBackground(new Color(0,0,0,0)); 

    scrlLadder.setVisible(false); 

    pnlMain.add(scrlLadder); 
+1

這可能是一個自定義的繪畫問題,但除非您提供了一個[可運行的示例](https://stackoverflow.com/help/mcve),它演示了您的問題,這完全只是猜測工作。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混淆和更好的反應 – MadProgrammer 2015-03-18 23:22:02

+0

'「我不知道爲什麼,因爲我已經加倍檢查代碼」' - 但我們不能。 :( – 2015-03-18 23:22:02

+0

我已經添加了一些代碼,有很多重複的代碼,所以沒有任何意義發佈它,但是我發佈的內容會給你和我想要的東西。謝謝! – Iron 2015-03-18 23:27:23

回答

3
pnlLadder.setBackground(new Color(0,0,0,0)); 
.... 
scrlLadder.setBackground(new Color(0,0,0,0)); 

我猜問題是透明的背景。這很容易驗證,只是擺脫setBackground(...)語句。

檢查出Backgrounds With Transparency可能的問題和一些解決方案。

+0

感謝您的鏈接,它肯定有一些與透明度問題做,因爲我設置每一個黑色的背景。感謝指針! – Iron 2015-03-19 01:07:29

+0

我認爲需要覆蓋RepaintManager#addDirtyRegion爲JViewport並設置JViewport#setScrollMode – mKorbel 2015-03-19 08:03:46

相關問題