package UI.Components; import Client.Book; import javax.swing.*; import java.util.ArrayList; public class BooksList extends JPanel { private static JPanel listPanel; public BooksList() { listPanel = new JPanel(); listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.Y_AXIS)); JScrollPane scrollPane = new JScrollPane(listPanel); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); this.add(scrollPane); this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); } public static void refreshBooks(ArrayList books) { new Thread(new Runnable() { @Override public void run() { listPanel.removeAll(); for (Book book : books) { listPanel.add(new BookListItem(book)); } listPanel.revalidate(); listPanel.repaint(); } }).start(); } }