我使用 Netbeans8 和 Java7。在嵌入 JScrollPane
中的 JPanel
内,我绘制了许多彩色矩形。当我通过滚动条向下滚动时,一些矩形显示为奇怪的 strip ,如下图所示(具体来说,请参见蓝色矩形)。
我在扩展 JPanel
的类中按如下方式绘制矩形。
List<Rectangle> rectagles = ...
List<Color> colours = ...
@Override
public void paintComponent(Graphics g) {
int index = 0;
int maxX = 0;
int maxY = 0;
for (Rectangle r : rectangles) {
g.setColor(colours.get(index));
int x = r.x;
int y = r.y;
int width = r.width;
int height = r.height;
maxX = Math.max(maxX, x + width);
maxY = Math.max(maxY, y + height);
g.fillRect(x, y, width, height);
g.setColor(Color.BLACK);
g.drawRect(x, y, width, height);
index++;
}
this.setMinimumSize(new Dimension(maxX, maxY));
this.setMaximumSize(new Dimension(maxX, maxY));
this.setPreferredSize(new Dimension(maxX, maxY));
}
如何避免这种恼人的情况?
最佳答案
您需要添加:
super.paintComponent(g);
在您的paintComponent()方法的顶部,在您进行自定义绘画之前清除背景。
关于java - Java中滚动后的矩形条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253306/