Java重绘不在JscrollPane中工作

时间:2015-03-26 17:00:36

标签: java swing

我正在使用此处http://java.dzone.com/news/how-quickly-add-validation的验证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();

        }
    });

那么我怎么能强制重绘像调整大小一样有效???或者任何更好的建议??

1 个答案:

答案 0 :(得分:0)

似乎验证插件没有正确完成。只适用于面板,而不是Jscrollpane。最好是删除图标并自己绘制..谢谢..