Hallo,
undzwar möchte ich in meinem Programm übergebene Strings in eine Tabelle speichern und anzeigen lassen. Ich habe das bisher in einer JList (selbstgeschriebene Klasse) gespeichert und es wurde alles wunderbar ausgegeben. Da sich eine Tabelle nun doch besser eignet, möchte ich nun eine Tabelle verwenden.
Ich habe alles so gelassen, wie es auch bisher funktioniert, nur habe ich anstelle der JList-Klasse (GUILIste) eine zweite Klasse (GUITable) geschrieben, welche auch (zumindest sagt es die Konsolenausgabe) funktioniert. Nur wird die Tabelle nicht angezeigt, habe aber keine Ahnung, woran es liegen kann. Ein Fehler wird nicht ausgegeben. Hier mal der Code:
Später wird halt das JScrollPane scrollPaneRisiko auf ein Panel ausgegeben, leider nur wenn ich public GUITable guiListeRisiken = new GUITable(); in public GUIListe guiListeRisiken = new GUIListe(); ändere. Hat da jmd ne Idee?
Ich bedanke mich schonmal im Voraus.
Viele Grüße
undzwar möchte ich in meinem Programm übergebene Strings in eine Tabelle speichern und anzeigen lassen. Ich habe das bisher in einer JList (selbstgeschriebene Klasse) gespeichert und es wurde alles wunderbar ausgegeben. Da sich eine Tabelle nun doch besser eignet, möchte ich nun eine Tabelle verwenden.
Ich habe alles so gelassen, wie es auch bisher funktioniert, nur habe ich anstelle der JList-Klasse (GUILIste) eine zweite Klasse (GUITable) geschrieben, welche auch (zumindest sagt es die Konsolenausgabe) funktioniert. Nur wird die Tabelle nicht angezeigt, habe aber keine Ahnung, woran es liegen kann. Ein Fehler wird nicht ausgegeben. Hier mal der Code:
Java:
public GUITable guiListeRisiken = new GUITable();
JScrollPane scrollPaneRisiko = new JScrollPane(guiListeRisiken);
class GUITable extends JTable
{
Vector<String> columnNames = new Vector();
Vector<Vector<String>> data = new Vector();
private DefaultTableModel tabRisiko = new DefaultTableModel(data, columnNames);
public void setElements(Collection risikoList)
{
tabRisiko.setNumRows(0);
columnNames.addElement("Risikonummer");
columnNames.addElement("Verursachernummer");
columnNames.addElement("Fehlerortnummer");
columnNames.addElement("Fehlerortbezeichnung");
columnNames.addElement("Quadrant");
columnNames.addElement("Fehlerartnummer");
columnNames.addElement("Fehlerartbezeichnung");
Iterator it = risikoList.iterator();
while(it.hasNext())
{
RisikoInfo k = (RisikoInfo)it.next();
String test = k.getDaten();
String[] seperated = test.split("\\+");
Vector<String> row = new Vector(5);
row.addElement(seperated[0]);
row.addElement(seperated[1]);
row.addElement(seperated[2]);
row.addElement(seperated[3]);
row.addElement(seperated[4]);
row.addElement(seperated[5]);
row.addElement(seperated[6]);
data.addElement(row);
}
revalidate();
}
public GUITable()
{
setModel (tabRisiko);
}
}
class GUIListe extends JList
{
private DefaultListModel swingListModelRisiko = new DefaultListModel();
public void setElements(Collection risikoList)
{
swingListModelRisiko.removeAllElements();
Iterator it = risikoList.iterator();
while(it.hasNext())
{
RisikoInfo k = (RisikoInfo)it.next();
swingListModelRisiko.addElement (k.getDaten());
}
}
public GUIListe()
{
setModel (swingListModelRisiko);
}
}
/**
* Der Konstruktor der Klasse KlausurFrame.
*
*/
public LadeGUI (Risiko model)
{
this.prg = model; // Model uebernehmen.
beschriften(); // Dialogfenster-Titel beschriften
initFromModelRisiko(); // GUI-Elemente aus model initialisieren.
layoutElements(); // GUI-Elemente positionieren.
}
private void initFromModelRisiko()
{
guiListeRisiken.setElements (prg.getRisiko());
}
Später wird halt das JScrollPane scrollPaneRisiko auf ein Panel ausgegeben, leider nur wenn ich public GUITable guiListeRisiken = new GUITable(); in public GUIListe guiListeRisiken = new GUIListe(); ändere. Hat da jmd ne Idee?
Ich bedanke mich schonmal im Voraus.
Viele Grüße
Zuletzt bearbeitet von einem Moderator: