在写一个需要用到组件重绘问题的应用时,先是遇到了重绘问题,然后又遇到组件内容无法滑动的问题。
组件结构为JPanel加入到JScrollPane,
然后把JScrollPane加入到JFrame中
关于组建重回问题:
因为是第一次写重回,所以在编写过程中,对不同部分进行了重绘尝试,最后发现,只需要对JPanel调用updateUI();
而无需对JSrollPane和JFrame调用repaint()或者updateUI();
对于当JPanel组件中的内容超过屏幕范围时,滚动条滑动问题:
再对JPanel组件重绘时,需要重新设定JPanel组件的长宽,根据内容宽度设定。
下面代码中的container是一个JPanel
container.removeAll();
/*
这里对container中的内容更新
*/
int num = container.getComponentCount();
container.setPreferredSize(new Dimension(650,50*num));//根据内容更新尺寸
container.updateUI();
下图是JPanel中组建不多时
往JPanel中添加足够多组件时
滚动条会在内容超过组件长宽时,变的能够滑动。