Java重绘在JscrollPane中不起作用

Java重绘在JscrollPane中不起作用,java,swing,Java,Swing,我在这里使用验证api。当我将所有组件放在一个面板中时,它可以正常工作。但是,如果我的组件在一个包装在Jscrollpane中的面板中,则在我滚动时,红色的验证错误图标保持静态。我尝试过(在调整侦听器上)重新验证和重新绘制,但没有成功 majorPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){ @Override public void adjustmen

我在这里使用验证api。当我将所有组件放在一个面板中时,它可以正常工作。但是,如果我的组件在一个包装在Jscrollpane中的面板中,则在我滚动时,红色的验证错误图标保持静态。我尝试过(在调整侦听器上)重新验证和重新绘制,但没有成功

    majorPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){
        @Override
        public void adjustmentValueChanged(AdjustmentEvent e) {


            frame.revalidate();
            frame.repaint();

        }
    });
但是,如果我调整屏幕大小,图标会流向正确的位置。为了实验起见。我做了下面的…稍微强制调整大小,现在它可以工作了…但是这个小的调整仍然是可见的和恼人的

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    int ScreenWidth = (int) screenSize.getWidth();
    int ScreenHeight = (int) screenSize.getHeight();
    majorPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){
        @Override
        public void adjustmentValueChanged(AdjustmentEvent e) {

            frame.setSize(ScreenWidth-15, ScreenHeight-15);
            frame.setExtendedState(Resource.MAXIMIZED_BOTH);

            frame.revalidate();
            frame.repaint();

        }
    });

那么,我怎样才能强制重新绘制像调整大小一样有效呢???或者有更好的建议吗?

验证插件似乎没有正确完成。只能在面板中工作,而不是在Jscrollpane中。最好是删除图标并自己绘制。谢谢。

查看。您可能只需要使用validate。经过一些阅读和努力。。我决定编辑jar文件并删除所有图标。。。然后在更换卡布局中的面板后,自己重新绘制它们。