public class GridPanel extends JPanel {

public PicComponent picComponent;
public GridPanel(){

}

public void paintPic() throws IOException{
setLayout(new GridLayout(CategoryPanel.Books.size()/3+1,3));
for(int i = 0;i<CategoryPanel.Books.size();i++){
String url = CategoryPanel.Books.get(i).getUrl();
System.out.println(url);
picComponent = new PicComponent(url);
add(picComponent);
picComponent.repaint();
}
}
}class PicComponent extends JComponent{
BufferedImage image = new BufferedImage(160, 160, BufferedImage.TYPE_3BYTE_BGR); public PicComponent(String url) throws IOException{
image = ImageIO.read(new File(url));
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
}
}