Guten Tag. Ich habe das Problem, dass mein JTable keine Werte anzeigt. Es werden zwar die Überschriften und die Tabelle angezeigt, jedoch keine Werte. Mein Projekt sieht so aus: Ich versuche eine Skispringer Simulation zu erstellen. Zuerst werden die Skispringer (als Attribute nachname: String, punkte: int) erstellt und in einer Liste gespeichert. Anschließend werden die Elemente der Liste in einer Methode die in der Klasse Verwaltung implementiert ist, dem DefaultTableModel hinzugefügt. Jedoch werden die Werte beim aufrufen der Methode nicht angezeigt.
[CODE lang="java" title="Methode zum Umwandeln der Listen Werte in eine DefaultTableModel"]public void teilnehmerListeInTableModel() {
int d = 0;
teilnehmer.toFirst();
while(teilnehmer.hasAccess()) {
d++;
teilnehmer.next();
}
String[] nachnamen = new String[d];
String[] punkte = new String[d];
int z = 0;
teilnehmer.toFirst();
while(teilnehmer.hasAccess()) {
nachnamen[z] = teilnehmer.getContent().getNachname();
punkte[z] = String.valueOf(teilnehmer.getContent().getPunkte());
z++;
teilnehmer.next();
}
anzeigeModel.addColumn("Nachname", nachnamen);
anzeigeModel.addColumn("Punkte", punkte);
}[/CODE]
Die Klasse ListeAnzeigenGui soll die Tabelle jetzt anzeigen:
Die Liste die ich erzeuge erhält auch Werte, das habe ich bereits überprüft.
Ich bedanke mich im voraus für Lösungsansätze.
Die Dokumentation der Klasse List, die ich verwende:
[CODE lang="java" title="Methode zum Umwandeln der Listen Werte in eine DefaultTableModel"]public void teilnehmerListeInTableModel() {
int d = 0;
teilnehmer.toFirst();
while(teilnehmer.hasAccess()) {
d++;
teilnehmer.next();
}
String[] nachnamen = new String[d];
String[] punkte = new String[d];
int z = 0;
teilnehmer.toFirst();
while(teilnehmer.hasAccess()) {
nachnamen[z] = teilnehmer.getContent().getNachname();
punkte[z] = String.valueOf(teilnehmer.getContent().getPunkte());
z++;
teilnehmer.next();
}
anzeigeModel.addColumn("Nachname", nachnamen);
anzeigeModel.addColumn("Punkte", punkte);
}[/CODE]
Die Klasse ListeAnzeigenGui soll die Tabelle jetzt anzeigen:
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class ListeAnzeigenGui extends JFrame {
private JPanel contentPane;
private Verwaltung v3;
//private JList<String> jlTeilnehmer;
private JTable jTable2;
//private String column[];
//protected DefaultListModel<Skispringer> anzeigeModel;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ListeAnzeigenGui frame = new ListeAnzeigenGui();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public ListeAnzeigenGui() {
//anzeigeModel = new DefaultListModel<Skispringer>();
v3 = new Verwaltung();
//v3.teilnehmerListeInListModel();
v3.listeZu2DArray();
//column = new String[2];
//column[0] = "Nachname";
//column[1] = "Punkte";
v3.teilnehmerListeInTableModel();
//jlTeilnehmer = null;
setTitle("Lassen Sie sich ihre Liste anzeigen");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblU1 = new JLabel("Ihre Liste");
lblU1.setBounds(178, 11, 83, 14);
contentPane.add(lblU1);
JButton btnOK = new JButton("OK");
btnOK.setBounds(335, 227, 89, 23);
btnOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Durchgang1 d1 = new Durchgang1();
d1.setVisible(true);
dispose();
}
});
contentPane.add(btnOK);
JScrollPane scrollPane1 = new JScrollPane();
scrollPane1.setBounds(22, 52, 371, 164);
contentPane.add(scrollPane1);
jTable2 = new JTable(v3.anzeigeModel);
scrollPane1.setViewportView(jTable2);
}
}
Ich bedanke mich im voraus für Lösungsansätze.
Die Dokumentation der Klasse List, die ich verwende: