1
這是我的代碼。我在水平滾動時發現一些查看問題,直到我致電scroll.repaint()
。 (JScrollPanel滾動位於另一個JPanel調用面板內)。水平塗料問題JScrollPane
JPanel pan=new JPanel("My Panel");
pan.setPreferredSize(new Dimension(XMIN,YMIN));
JScrollPane scroll=new JScrollPane(pan,JScrollPane.VERTICAL_SCROLLBAR_NEVER,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
pan.setSize(XPAN,YPAN);
scroll.setBounds(0,100,XMIN,YMIN);
//...stuff, I put elements in my JPanel pan.
pan.setPreferredSize(new Dimension(x>XMIN?x+deltaX:XMIN,YMIN));
pan.revalidate();
panel.add(scroll);
scroll.repaint();
panel.repaint();
有一個簡單的方法來解決JScrollPane的,並一直是我在JScrollPane的項目一個明確的說法滾動甚至當?
以我的經驗Swing組件在默認情況下(除了一個JLabel)不透明的,除非你是使用一些奇怪的LAF。我懷疑你真正的問題是你正在使用空佈局。不要使用空佈局。 Swing旨在與佈局經理一起使用。另外,不要使用setPreferredSize()。確定尺寸是佈局經理的工作。也不需要所有的revalidate()和repaint()方法。所有Swing組件都應添加到框架之前,使框架可見。 – camickr