【问题标题】:Paint problems with horizontal JScrollPane水平 JScrollPane 的绘制问题
【发布时间】:2017-06-17 09:10:11
【问题描述】:

这是我的代码。在我调用scroll.repaint() 之前,我注意到水平滚动时出现了一些查看问题。 (JScrollPanel 滚动条位于另一个名为 panel 的 JPanel 内)。

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 中的项目?

【问题讨论】:

    标签: java swing jscrollpane


    【解决方案1】:

    这是非透明元素的问题,默认情况下 JCheckBox 不是不透明的...... 现在效果很好:)

    【讨论】:

    • 根据我的经验,Swing 组件默认是不透明的(JLabel 除外),除非您使用一些奇怪的 LAF。我怀疑你真正的问题是你使用的是空布局。不要使用空布局。 Swing 旨在与布局管理器一起使用。另外,不要使用 setPreferredSize()。确定大小是布局管理器的工作。也不需要所有的 revalidate() 和 repaint() 方法。所有 Swing 组件都应该在框架可见之前添加到框架中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2015-06-19
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多