Poprawiłem to co wyżej napisałeś, wrzucę całą klasę która wyświetla mi zawartość mapy:
class WidokMapy extends JScrollPane {
private static final long serialVersionUID = 1L;
private JTable tabela;
private DefaultTableModel modelTabeli;
private Map<String, Long> map;
WidokMapy(Map<String, Long> map, int szerokosc, int wysokosc,
String opis) {
String[] kolumny = { "Słowo:", "Ilość:" };
modelTabeli = new DefaultTableModel(kolumny, 0);
tabela = new JTable(modelTabeli);
tabela.setRowSelectionAllowed(false);
this.map = map;
setViewportView(tabela);
setPreferredSize(new Dimension(szerokosc, wysokosc));
setBorder(BorderFactory.createTitledBorder(opis));
}
void refresh(){
modelTabeli.setRowCount(0);
for (Map.Entry<String, Long> entry : map.entrySet())
{
String[] wiersz = { entry.getKey(), Long.toString(entry.getValue()) };
modelTabeli.addRow(wiersz);
}
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at WidokMapy.refresh(Reader.java:132)
at Reader.actionPerformed(Reader.java:100)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
.
.
.
Linia 132:
for (Map.Entry<String, Long> entry : map.entrySet())
Linia 100: widokSlowa.refresh();