Hallo,
Ich habe eine JTable mit zwei Spalten wo in einer Zeile immer der Name eines Fotos und ein kleines ImageIcon von dem Foto angezeigt wird. Es gibt nun auch die Option, dass man Fotos hinzufügen kann, leider wird die JTable nach dem Hinzufügen nicht aktualisiert.
Die Methode, die die Tabelle füllt sieht folgendermaßen aus:
Wenn ich das erste Mal Bilder auswähle dann werden die in der JTable angezeigt, jedoch wenn ich Bilder hinzufügen möchte, diese in einem JFileChooser auswähle und auf Ok klicke werden die neuen Bilder in der JTable nicht angezeigt, obwohl sie sicher in der pictures ArrayList enthalten sind, dort werden sie nämlich vorher hinzugefügt bevor die Methode fillTable aufgerufen wird.
Hat jemand eine Ahnung, warum das nicht funktioniert?
mat
Ich habe eine JTable mit zwei Spalten wo in einer Zeile immer der Name eines Fotos und ein kleines ImageIcon von dem Foto angezeigt wird. Es gibt nun auch die Option, dass man Fotos hinzufügen kann, leider wird die JTable nach dem Hinzufügen nicht aktualisiert.
Die Methode, die die Tabelle füllt sieht folgendermaßen aus:
Code:
public void fillTable(ArrayList pictures)
{
Vector row;
Vector rows = new Vector();
Vector columns = new Vector();
columns.add("Photo");
columns.add("Name");
for(int k = 0; k < pictures.size(); k++)
{
row = new Vector();
Image image = Toolkit.getDefaultToolkit().getImage( ((File)pictures.get(k)).getAbsolutePath());
ImageFilter filter = new ReplicateScaleFilter(60,45);
ImageProducer producer = new FilteredImageSource(image.getSource(),filter);
Image resizedImage = Toolkit.getDefaultToolkit().createImage(producer);
ImageIcon icon = new ImageIcon(resizedImage);
row.add(icon);
row.add(((File)pictures.get(k)).getName());
rows.add(row);
}
tableModel = new DefaultTableModel(rows, columns);
jTable = new JTable( tableModel )
{
// Returning the Class of each column will allow different
// renderers to be used based on Class
public Class getColumnClass(int column)
{
System.out.println(getValueAt(0,column).getClass());
return getValueAt(0, column).getClass();
}
};
jTable.setPreferredScrollableViewportSize(jTable.getPreferredSize());
jTable.setRowHeight(60);
jTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jTable.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent evt) {
jTable1MouseDragged(evt);
}
});
jTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent evt) {
jTable1MousePressed(evt);
}
});
jTable.setModel(tableModel);
jScrollPane = new JScrollPane(jTable);
jScrollPane.setBounds(79, 80, 300, 200);
jContentPane.add(jScrollPane);
}
Wenn ich das erste Mal Bilder auswähle dann werden die in der JTable angezeigt, jedoch wenn ich Bilder hinzufügen möchte, diese in einem JFileChooser auswähle und auf Ok klicke werden die neuen Bilder in der JTable nicht angezeigt, obwohl sie sicher in der pictures ArrayList enthalten sind, dort werden sie nämlich vorher hinzugefügt bevor die Methode fillTable aufgerufen wird.
Hat jemand eine Ahnung, warum das nicht funktioniert?
mat