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