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