Hallo, ich habe folgende Frage und hoffe mir kann jemand weiterhelfen.
In meiner Tabelle, bestehen aus 7 Spalten und 4 Zeilen, werden die Inhalte aller Zellen korrekt angezeigt solange es sich um „Texte“ handelt.
Enthält eine Zelle in irgendeiner Zeile/Spalte jedoch eine „Grafik“, werden sämtliche Texte dieser Spalte unterdrückt.
Erfolgt ein Doppelklick auf eine solche „leere“ Zelle, wird deren Feldinhalt angezeigt. Die Grafik bleibt unverändert und der Feldinhalt solange erhalten, bis eine andere Zelle angeklickt wird.
Ich vermute, es hängt mit meinem „DefaultTableModel model“ zusammen.
Vielen Dank für eine Nachricht
Skrobi
In meiner Tabelle, bestehen aus 7 Spalten und 4 Zeilen, werden die Inhalte aller Zellen korrekt angezeigt solange es sich um „Texte“ handelt.
Enthält eine Zelle in irgendeiner Zeile/Spalte jedoch eine „Grafik“, werden sämtliche Texte dieser Spalte unterdrückt.
Erfolgt ein Doppelklick auf eine solche „leere“ Zelle, wird deren Feldinhalt angezeigt. Die Grafik bleibt unverändert und der Feldinhalt solange erhalten, bis eine andere Zelle angeklickt wird.
Ich vermute, es hängt mit meinem „DefaultTableModel model“ zusammen.
Java:
DefaultTableModel model = new DefaultTableModel(data, columnNames)
{
public Class getColumnClass(int column)
{
return getValueAt(1, column).getClass();
// 1 = Grafik/Bilder in Zeile 1 werden angezeigt
}
};
JTable table = new JTable( model );
// Spaltenbreite festlegen
table.getColumnModel().getColumn(0).setPreferredWidth(30);
table.getColumnModel().getColumn(1).setPreferredWidth(30);
table.getColumnModel().getColumn(2).setPreferredWidth(140); //100
table.getColumnModel().getColumn(3).setPreferredWidth(130); //90
table.getColumnModel().getColumn(4).setPreferredWidth(130); //90
table.getColumnModel().getColumn(5).setPreferredWidth(130);
table.getColumnModel().getColumn(6).setPreferredWidth(130);
// Spaltenhöhe bei Überschriften festlegen
table.setRowHeight( 0, 30 );
table.setRowHeight( 1, 130 );
table.setRowHeight( 2, 30 );
table.setRowHeight( 3, 30 );
JScrollPane scrollPane = new JScrollPane( table );
scrollPane.setPreferredSize(new Dimension(480, 400));
add( scrollPane );
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("TM_051_JTable_Bilder_einfügen");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new TM_051_JTable_Bilder_einfügen());
frame.setSize(550, 450);
// frame.setLocationByPlatform( true );
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible( true );
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
Skrobi