import java.io.IOException; import java.io.ObjectInputStream; import java.io.PipedInputStream; import java.util.Random; import javax.swing.JTable; import javax.swing.JFrame; import javax.swing.JScrollPane; public class ThreadA implements Runnable { private PipedInputStream pis; public ThreadA(PipedInputStream pis) { this.pis = pis; } @Override public void run() { try { CountriesTable tabelaKrajow = new CountriesTable(); JTable tabela = new JTable(tabelaKrajow); tabela.setDefaultRenderer(String.class, new MyRenderer()); tabela.setPreferredScrollableViewportSize(tabela.getPreferredSize()); JFrame frame = new JFrame("Lista panstw"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); JScrollPane pane = new JScrollPane(tabela); frame.getContentPane().add(pane); frame.setSize(500, 500); ObjectInputStream ois = new ObjectInputStream(pis); Random random = new Random(); while(true) { Country country = null; try { country = (Country) ois.readObject(); tabelaKrajow.add(country); tabelaKrajow.fireTableRowsInserted(tabelaKrajow.getRowCount(), tabelaKrajow.getRowCount()); } catch(IOException e) { break; } System.out.println("ODEBRANO:" + country.getPanstwo()); Thread.sleep(random.nextInt(2000) + 1000); } } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }