Anzeige:
Ergebnis 1 bis 3 von 3

Thema: JTable, Update des Tabelleninhalts

  1. #1
    Baui1984
    Gast

    JTable, Update des Tabelleninhalts

    Hallo,

    ich habe ein Problem mit einer Programmierübung von der Uni.
    Wir sollten eine einfache Fahrzeugverwaltung in Java realisieren und diese nun um eine GUI erweitern.
    Die Fahrzeuge speichere ich in einer LinkedList, um diese in einer Tabelle darzustellen speicher ich diese in einem Object[][], das funktioniert soweit.
    Wenn ich das Programm starte ist die Liste leer, das Object[][] also auch. Die Tabelle wird mit den Spaltenüberschriften korrekt angezeigt.
    Natürlich sollen der Tabelle Zeilen hinzugefügt oder gelöscht werden, wenn ich ein Fahrzeug anlege oder lösche, und da stecke ich gerade fest.
    Nach dem Anlegen oder Löschen eines Fahrzeugs kopiere ich die Liste wieder in ein Object[][], aber alle Versuche die Tabelle zu aktualisieren schlagen fehl.

    Hier der Code der Tabelle (als PHP-Code, für zumindest ein wenig Highlighting):
    PHP-Code:
    String[] tableColumns = { "Type""ID""FIN""Name""Information" };
    Object[][] data LogicAccess.getManagement().toTable(LogicAccess.getManagement().getVehicleList());
    JTable table = new JTable(datatableColumns);
    JScrollPane scroll = new JScrollPane(table);
    JPanel cp = new JPanel();
    cp.setLayout(new BorderLayout());
    cp.add(table.getTableHeader(), BorderLayout.PAGE_START);
    cp.add(scrollBorderLayout.CENTER);
    cp.add(scroll);
    center.add(cp); 
    Hier noch ein ActionListener aus der GUI Klasse:
    PHP-Code:
    car_button.addActionListener(new ActionListener() {
        public 
    void actionPerformed(ActionEvent e) {
            try {
                
    Add a = new Add(0);
                
    a.run();
            } catch (
    InvalidTypeException ex) {
                
    JOptionPane.showMessageDialog(nullex"Error"0);
            }
        }
    }); 
    Und ein Auszug der Methode run() der Klasse Add:
    PHP-Code:
    ok.addActionListener(new ActionListener() {
        public 
    void actionPerformed(ActionEvent e) {
            
    String FIN text_fin.getText();
            
    String name text_name.getText();
            
    String initReg text_initreg.getText();
            
    LogicAccess.getManagement().add(FINnameinitReg);
            
    f.setVisible(false);
            
    Object[][] data LogicAccess.getManagement().toTable(LogicAccess.getManagement().getVehicleList());
        }
    }); 
    Einen Screenshot der GUI hänge ich noch an, vielleicht ist er hilfreich. Sollten wichtige Infos fehlen reiche ich die nach, hoffe ich hab erstmal nichts wichtiges vergessen.

    Freu mich wenn mir jemand helfen kann.

    Gruß Jan

  2. #2
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Also was die LogicAccess-Klasse macht, weiß ich nicht, aber ich würde erwarten, dass die Daten (data) an das Tabellenmodell übergeben werden bzw. dass mit den Daten ein neues Tabellenmodell gebaut wird, das an der Tabelle gesetzt wird
    (table.setModel...)
    Das Ziel ist das Ziel.

  3. #3
    Baui1984
    Gast
    Vielen Dank! So scheint's zu funktionieren.
    Hatte Model vorher ignoriert, dachte das hätte damit nichts zu tun. Muss wohl mehr an meinem Englisch arbeiten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •