Moin Moin!
Mein Programm zeigt in jeder Zelle einer Reihe denselben Inhalt und ich verstehe nicht warum?!?
Die Ausgabe schaut in etwa so aus:
aaa aaa aaa aaa
bbb bbb bbb bbb
ccc ccc ccc ccc
ddd ddd ddd ddd
Des Weiteren wird die Tabelle in einer fixen Größe angezeigt und die Breitendefinition meiner Spalten werden nicht berücksichtigt? Eigentlich müsste meine Tabelle viel Breiter sein als sie ist. Ihre Breite und Höhe ist aktuell gleich. Was mache ich da falsch?
Zur Info die Methode "initComponents()" befindet sich in einer Klasse die von JPanel abgeleitet wird und im ContentPane eines JFrames angezeigt wird.
Ich würde mich sehr über eure Hilfe freuen!
Mein Programm zeigt in jeder Zelle einer Reihe denselben Inhalt und ich verstehe nicht warum?!?
Die Ausgabe schaut in etwa so aus:
bbb bbb bbb bbb
ccc ccc ccc ccc
ddd ddd ddd ddd
Des Weiteren wird die Tabelle in einer fixen Größe angezeigt und die Breitendefinition meiner Spalten werden nicht berücksichtigt? Eigentlich müsste meine Tabelle viel Breiter sein als sie ist. Ihre Breite und Höhe ist aktuell gleich. Was mache ich da falsch?
Zur Info die Methode "initComponents()" befindet sich in einer Klasse die von JPanel abgeleitet wird und im ContentPane eines JFrames angezeigt wird.
Java:
private void initComponents() {
setLayout(new FlowLayout());
// ColumnModel der Tabelle
DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
TableColumn col;
col = new TableColumn(0, 150);
col.setHeaderValue("PMID");
columnModel.addColumn(col);
col = new TableColumn(0, 600);
col.setHeaderValue("Title");
columnModel.addColumn(col);
col = new TableColumn(0, 150);
col.setHeaderValue("Erstautor");
columnModel.addColumn(col);
col = new TableColumn(0, 150);
col.setHeaderValue("Seniorautor");
columnModel.addColumn(col);
col = new TableColumn(0, 150);
col.setHeaderValue("Date");
columnModel.addColumn(col);
col = new TableColumn(0, 300);
col.setHeaderValue("Journal");
columnModel.addColumn(col);
// TableModel der Tabelle
DefaultTableModel tableModel = new DefaultTableModel() {
/**
* Definiert die Anzahl der Spalten in der Tabelle
*/
public int getColumnCount() {
return 6;
}
/**
* Ermöglicht das numerische Sortieren
*/
public Class getColumnClass(int column) {
String name = getColumnName(column);
if(name != null) {
if(name.equalsIgnoreCase("PMID")) {
return Integer.class;
}
}
return super.getColumnClass(column);
}
};
// Daten der Tabelle
HashMap<Integer,Paper> h = this.library.getPapers();
Vector<Object> row;
for(Map.Entry<Integer, Paper> e : h.entrySet()) {
Paper p = e.getValue();
// Neue Zeile in Tabelle erstellen
row = new Vector<Object>();
row.add(p.getPmid());
row.add(p.getTitle());
row.add(p.getFirstAuthor().getLastName()+ ", " + p.getFirstAuthor().getInitials());
row.add(p.getSeniorAuthor().getLastName()+ ", " + p.getSeniorAuthor().getInitials());
row.add(p.getDate());
row.add(p.getJournalISO());
// Neue zeile zur Tabelle hinzufügen
tableModel.addRow(row);
}
// Zusammenbau der Tabelle
JTable table = new JTable(tableModel, columnModel);
// Sortierungsfunktion
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tableModel);
table.setRowSorter(sorter);
add(new JScrollPane(table));
}
Ich würde mich sehr über eure Hilfe freuen!