JTabels und das Hinzufügen von Zeilen mit Inhalt

Status
Nicht offen für weitere Antworten.

LordTerra

Aktives Mitglied
moin

also dann mal was neues:

ich habe folgenden Code:

Table - Classe:

Code:
    class MyTableModel extends AbstractTableModel { 
        private String[] columnNames = {"Eigenschaft", "Wert"}; 
        
        private Object[][] data = LadeEigenschaften.Lade_Eigenschaften(); 

        public final Object[] longValues = {"", ""}; 

        public int getColumnCount() { 
            return columnNames.length; 
        } 

        public int getRowCount() { 
            return data.length; 
        } 

        public String getColumnName(int col) { 
            return columnNames[col]; 
        } 

        public Object getValueAt(int row, int col) { 
            return data[row][col]; 
        } 

        public Class getColumnClass(int c) { 
            return getValueAt(0, c).getClass(); 
        } 

        public boolean isCellEditable(int row, int col) { 
            if (col < 1) { 
                return false; 
            } else { 
                return true; 
            } 
        } 

        public void setValueAt(Object value, int row, int col) { 
            data[row][col] = value; 
            fireTableCellUpdated(row, col); 
        } 

    }



Iniziallisierung:
Code:
    JTable jTableEigenschaften = new JTable(new MyTableModel()); 
    MyTableModel model = (MyTableModel)jTableEigenschaften.getModel();




so also die Class wird also aufgerufen und auch angezeigt und es zeigt auch eine tabelle mit dem kopf: Eigenschaften | Wert
und der 1. zeile aus "LadeEigenschaften.Lade_Eigenschaften()" richtig an...

soweit sogut...
jetzt möchte ich aber meiner tabelle noch folgende daten hinzufügen:

Code:
Object rowData2[][] = {{"",""}, 
                         {"Objekt_ID",""+label_id}, 
                         {"Objekt",""+label_name}, 
                         {"Pos_X",""+akt_pos_x}, 
                         {"Pos_y",""+akt_pos_y}, 
                         {"Size_X",""+akt_size_x}, 
                         {"Size_Y",""+akt_size_y} 
                        };



und genau da scheitere ich ich versuch den mist seit 5 std zum laufen zu bekommen... hab mir duzende quellcodes im inet angeguckt undi ch werd immer noch net schlau...

also ich weis ich muss
Code:
fireTableRowsInserted
benutzen...

aber wie hab ich ehrlich keinen plan...
pls ich brauch hilfe!!!

mfg LordTerra
 
S

SlaterB

Gast
du brauchst ein neues größeres data-Objekt, mit dem alten Inhalt + der neuen Zeile,

mit einer Liste statt Array könntest du einfach eine neue Zeile in die List einfügen,
z.B. List<Object[]>


--------

statt

JTable jTableEigenschaften = new JTable(new MyTableModel());
MyTableModel model = (MyTableModel)jTableEigenschaften.getModel();

schreibe lieber

MyTableModel model = new MyTableModel();
JTable jTableEigenschaften = new JTable(model);
 

LordTerra

Aktives Mitglied
SlaterB hat gesagt.:
du brauchst ein neues größeres data-Objekt, mit dem alten Inhalt + der neuen Zeile,

mit einer Liste statt Array könntest du einfach eine neue Zeile in die List einfügen,
z.B. List<Object[]>
???
also ich hab nen Object [][] feld wie soll ich das in ne liste packen?
und wie soll ich dann diese liste meiner tabelle adden?
 
S

SlaterB

Gast
feld ist ein Array von z.B. 15 Zeilen (eine Zeile ist ein Object[])
die 15 Zeilen könntest du einer nach der anderen in eine Liste einfügen,

so wie man jede Art von Objekte in eine Liste einfügt, was soll ich dazu sagen?

> und wie soll ich dann diese liste meiner tabelle adden?

die Liste ist nur dem Model bekannt, die Table interessiert sich nciht dafür, sie sieht nur das Model,

im Model würde die Liste das Object[][] ersetzen, alle Operationen würden ähnlich wie bisher drauf zugreifen
 

LordTerra

Aktives Mitglied
ja sorry hab listen noch nie verwendet... ich bin grad am rumbasteln das ich die überhaupt deklariert bekomm
 

LordTerra

Aktives Mitglied
Code:
        public void add(Object value[][]) {
            Object zeile_zusammenbau[] = new Object [500];
        	List zeile = new ArrayList();
        	int flag=0;
        	for(int i=0;i<value.length; i++){
       			zeile_zusammenbau[i]=value[i];
 
        		zeile.add(zeile_zusammenbau[i]);
        	}        	 
        }

so hab jetzt also noch das dazu gebastelt...

also jetzt hab ich eine liste mit den neuen daten...
wie bastel ich die jetzt zu meiner bestehenden tabelle?
 
S

SlaterB

Gast
genau andersrum...

die neuen Daten (falls du damit eine Zeile meinst) sind keine Liste, sondern bleiben ein Object[],
und die bestehende Tabelle ist die List, und da einfach einfügen

wieso sind die bei dir die neuen Daten Object[][]? eine Zeile kann nur ein Object[] sein,
was soll da drinstehen, was soll das sein?
wenn das die kompletten Daten der Tabelle sind, dann dein altes Feld damit überschreiben


was soll das Object[] der Länge 500 sein?
du musst schon jedem Objekt in deinem Programm einen Sinn zuordnen, sonst versteht das keiner

ich sehe das wie folgt:
wenn die Tabelle 7 Spalten hat, dann ist eine Zeile ein Object[7],

wenn man 15 Zeilen hat,
dann muss man die alle 15 speichern, z.B. in einem Object[15][7]
oder in einer Liste<Object[]>, die 15 Zeilen, also 15x ein Object[7] enthält

wenn du eine neue Zeile einfügen willst, dann machst du
add(Object[]], also add Object[7], und das fügst du einfach in die Liste ein, die dann 16 statt 15 Zeilen enthält

oder aber du verwendest das Object[][], dann brauchst du aber ein größeres Array [16][7], damit alle 16 Zeilen reinpassen
 

LordTerra

Aktives Mitglied
also die 500 sind einfach eine fiktive größe

aber efektiv hab ich eine tabelle

eigenschaft | wert
eigenschaft | wert
eigenschaft | wert
eigenschaft | wert
eigenschaft | wert
eigenschaft | wert
eigenschaft | wert
eigenschaft | wert

.
.
.

z.b. :

Code:
	    Object rowData2[][] = {{"",""},
	    					   {"Objekt_ID",""+label_id},
	    					   {"Objekt",""+label_name},
	    					   {"Pos_X",""+akt_pos_x},
	    					   {"Pos_y",""+akt_pos_y},
	    					   {"Size_X",""+akt_size_x},
	    					   {"Size_Y",""+akt_size_y}
	    					  };

daher das 2d feld...

und wenn ich dich richtig verstanden hab muss ich jetzt nur bevor ich

Code:
    zeile.add(zeile_zusammenbau[i]);

mach noch die bisherrigen zeilen adden?
 
S

SlaterB

Gast
ich weiß nicht was zeile_zusammenbau ist
ich weiß nicht was zeile ist
ich weiß immer noch nicht was rowData2 ist, ob das nun 6 neue Zeilen sind, eine neue Zeile oder die komplette neue Tabelle
 

LordTerra

Aktives Mitglied
irgendwie hast du meinen quellcode net wirklich verstanden...

ich habe keine 500 spalten sondern 500 zeilen...
und ich hab genau 2 spalten...


zeile_zusammenbau = 1 von den 500 zeilen
zeile = liste von neuen zeilen

und wie gesagt es sind 500 neue zeilen bestehend aus 2 elementen ner eigenschaft und nem wert
 
S

SlaterB

Gast
> zeile_zusammenbau = 1 von den 500 zeilen
zeile_zusammenbau ist (oder war zumindest oben) ein Object[500],
wie kann dieses riesige Objekt eine von den 500 Zeilen sein?
vielleicht meinst du

zeile_zusammenbau = 1 von den 500 zeilen

was aber immer noch nicht besonders viel erklärt,
denn zeile_zusammenbau ist ein eindimesionales Array,
kann also nur einzelne Objekte enthalten, wie soll da eine Zeile bestehend aus zwei Objekten rein?

> zeile = liste von neuen zeilen

welchen Sinn hat es, eine Liste von neuen Zeilen zu erstellen?
davon habe ich nie geredet,
ich meinte immer nur, dass es eine Liste mit allen Zeilen der Tabelle gibt,
und dass man in diese Gesamtliste neue Zeilen einfügen kann
 

LordTerra

Aktives Mitglied
alter.....

1. is doch scheiss egal wie groß das feld is das ding is nen zwischenspeicher den ich noch von ner anderen idee drin hatte ich kann den auch komplett raus lassen...

Code:
        public void add(Object value[][]) {
    	List zeile = new ArrayList();
        	for(int i=0;i<value.length; i++){
        		zeile.add(value[i]);
        		System.out.println(zeile);
        	}        	 
        }

^^ das geht genauso gut... sorry aber wie kann man sich an so nem kram aufhängen???


und in value steht nun sowas wie = {"Pos_y",""+akt_pos_y}, drin, bzw der zeiger auf die stelle

und in zeile hab ich nun nen array von zeigern die auf die neuen zeilen verweisen...
das problem was ich hab is einfach das ich diese liste jetzt der tabelle zuweisen will und net weis wie...
 
S

SlaterB

Gast
du hast dieses unverständliche und überflüssige Array eingeführt, das nun komplett verschwindet,
sollte ich das in meinen Gedanken komplett ausklammern?
du musst schon sagen, was ich alles ausklammern soll ;)

gut, dass das weg ist,
bleibt noch 'zeile', welches, wie gesagt, in meinem Auge genauso überflüssig ist,
was hilft dir eine Liste der neuen Zeilen? gar nix,
füge die Zeilen direkt in die Liste ALLER Zeilen ein,
fireTableXYWasWeißIch();
und fertig,
ganz einfach
 

LordTerra

Aktives Mitglied
ja und genau da liegt mein problem...
von mir aus mach ich auch noch die liste weg aber wie
weis ich nun meiner vorhanden tabel was zu

Code:
fireTableRowsInserted

public void fireTableRowsInserted(int firstRow,
                                  int lastRow)

das versteh ich ja eben net...

ich hab values die an meine tabelle angehängt werden soll ...
und bei der einzigsten funktion die sowas laut definition macht muss man keine neuen daten angeben sondern nur ne 1. und letzte zeile...

wo nimmt sich java denn die daten her bzw weis es das es values nehmen soll ?
und was zählt als 1. bzw letzte zeile???
 
S

SlaterB

Gast
wenn dein Tabelle schon 70 Zeilen hat und du 4 neue einfügst,
dann ist es in der Einfüge-Operation doch leicht zu berechnen,
dass du am Ende
fireTableRowsInserted(70,74);
aufrufen musst, was ist daran schwer? du kennst du Größe der Tabelle und die Anzahl der neu eingefügten Zeilen

-------------

> aber wie weis ich nun meiner vorhanden tabel was zu

da warst du schon am Anfang und ich sagte:
entweder
private Object[][] data
vergrößern und darin die neuen Zeilen einfügen
(und die alten übernehmen, du bräuchtest ein neues Array)

oder eine Liste an Stelle von data verwenden und in diese Liste einfach einfügen,
 

LordTerra

Aktives Mitglied
ja und genau den letztenm teil deiner antwort versteh ich net...

kannst du net einfach mal fix den quellcode hinschrieben das ich das seh wie du das meinst ? ab besten mir dem vergrößerten object[][]
 
S

SlaterB

Gast
programmieren musst du selber, ich verrate schon viel zu viel, ungefähr
Code:
Object[][] oldData = data;
int alteLaenge = ..;
data = new Object[alteLaenge +neueZeilen][2];
for (i < alteLaenge ) {
  data[i] = oldData[i];
}
for (i < neueZeilen) {
  data[alteLaege+i] = neueData[i];
}
 

LordTerra

Aktives Mitglied
Code:
        public void add(Object value[][]) {
        	int neueZeilen=0;
        	for(int i=0;i<value.length; i++){
    			neueZeilen++;
        		if(value[i]==null){
        			break;
        		}
        	}        	 
        	
        	Object[][] oldData = data; 
        	int alteLaenge = data.length; 
        	data = new Object[alteLaenge +neueZeilen][2]; 
        	for (int i=0; i < alteLaenge; i++ ) { 
        	  data[i] = oldData[i]; 
        	} 
        	for (int i=0; i < neueZeilen; i++) { 
        	  data[alteLaenge+i] = value[i]; 
        	} 
        	fireTableRowsInserted(alteLaenge, alteLaenge+neueZeilen);	

        }


man mags kaum glaubes :) es ist vollbracht :)
thx ...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
K Tabelle zu Datenbank hinzufügen / Apache Derby AWT, Swing, JavaFX & SWT 7
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
A JavaFX exportierte Jar ohne beim starten die Libs hinzufügen? AWT, Swing, JavaFX & SWT 2
P Swing jxmapviewer hinzufügen/nutzen funktioniert nicht AWT, Swing, JavaFX & SWT 7
D ObservableList Werte hinzufügen AWT, Swing, JavaFX & SWT 7
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
B Mit der ChoiceBox-Auswahl Textfelder hinzufügen AWT, Swing, JavaFX & SWT 18
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
Q AWT TicTacToe Image auf Button hinzufügen AWT, Swing, JavaFX & SWT 5
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
Wurstsemmel SWT MenuItem dynamisch hinzufügen AWT, Swing, JavaFX & SWT 2
F JavaFX In SampleController ObservableList zu ListView hinzufügen AWT, Swing, JavaFX & SWT 0
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
Hijo2006 Tabsheets hinzufügen AWT, Swing, JavaFX & SWT 4
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
M Buttons in JSplitPane hinzufügen AWT, Swing, JavaFX & SWT 6
K JavaFX NullpointerEx, kann nichts zur Pane hinzufügen AWT, Swing, JavaFX & SWT 10
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
A JavaFX Scene Builder eigene Klasse hinzufügen AWT, Swing, JavaFX & SWT 2
F Swing Image einem Button hinzufügen AWT, Swing, JavaFX & SWT 5
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
P JavaFX TableView Item hinzufügen AWT, Swing, JavaFX & SWT 20
W Bei Button-klick neuen button in array hinzufügen AWT, Swing, JavaFX & SWT 7
X AWT Graphics2D zum LWJGL Display hinzufügen aber wie? AWT, Swing, JavaFX & SWT 4
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
K Swing JList - Element richtig hinzufügen AWT, Swing, JavaFX & SWT 4
L Swing Button in GridBackLayout positionieren und TitleBorder pro Spalte hinzufügen AWT, Swing, JavaFX & SWT 9
X Java Komponenten jeder Zeit hinzufügen können AWT, Swing, JavaFX & SWT 3
K SWT TitleAreaDialog - SelectionListener zur Message hinzufügen AWT, Swing, JavaFX & SWT 3
A Text (String) zu einer Box hinzufügen AWT, Swing, JavaFX & SWT 16
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
P Text in JPanel hinzufügen AWT, Swing, JavaFX & SWT 2
M Im JPanel klickbare Felder hinzufügen AWT, Swing, JavaFX & SWT 2
B Swing Problem: Horizontaler Scrollbalken in JComboBox hinzufügen AWT, Swing, JavaFX & SWT 4
B Buttons entfernen / hinzufügen AWT, Swing, JavaFX & SWT 5
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
X JScrollPane zu JTable hinzufügen AWT, Swing, JavaFX & SWT 16
E JFreeChart in einer dynamischen Aufzeichnung neue Serien hinzufügen? AWT, Swing, JavaFX & SWT 7
D JTable Aktualisierung nach hinzufügen eines Datensatzes AWT, Swing, JavaFX & SWT 7
T MouseListener an Ecken von Polygonen hinzufügen AWT, Swing, JavaFX & SWT 5
V Eclipse View Right-Click Menu hinzufügen AWT, Swing, JavaFX & SWT 2
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
R Eine Instanz von JPanel mehrfach hinzufügen AWT, Swing, JavaFX & SWT 2
F Panels über buttons zu anderen Panels hinzufügen AWT, Swing, JavaFX & SWT 2
E Übergebenem JTree Blätter hinzufügen AWT, Swing, JavaFX & SWT 2
Q AWT Choice ein Zeichen hinzufügen AWT, Swing, JavaFX & SWT 4
R JPanel von JScrollPane entfernen und hinzufügen AWT, Swing, JavaFX & SWT 3
E Adressleiste zum Browserfenster hinzufügen? AWT, Swing, JavaFX & SWT 4
S JPanel in den Container hinzufügen AWT, Swing, JavaFX & SWT 3
T Elemente zu JList dynamisch hinzufügen AWT, Swing, JavaFX & SWT 4
E Swing Verzögerung beim Hinzufügen / Ändern von Swingkomponenten AWT, Swing, JavaFX & SWT 3
H Swing HTML in einem JEditorPane zeilenweise hinzufügen ohne Inhalt jedes Mal neu zu laden AWT, Swing, JavaFX & SWT 4
H Zeile in DefaultTableModel hinzufügen, ProgressBar AWT, Swing, JavaFX & SWT 4
O EventListener verschachtekt hinzufügen AWT, Swing, JavaFX & SWT 3
L SWT Filter zur TreeViewer hinzufügen AWT, Swing, JavaFX & SWT 9
H Ellipse2d zum path hinzufügen AWT, Swing, JavaFX & SWT 4
K JList-Probleme beim Hinzufügen von Elementen AWT, Swing, JavaFX & SWT 3
N zwei JComponente gleichzeitig auf JPanel hinzufügen AWT, Swing, JavaFX & SWT 22
N JPanel zum JFrame hinzufügen AWT, Swing, JavaFX & SWT 9
B Swing Dynamisch Elemente in JScrollPane hinzufügen AWT, Swing, JavaFX & SWT 6
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
P Swing JEditorPane mit HTMLDocument - Text hinzufügen AWT, Swing, JavaFX & SWT 2
Tobse Swing JList elemente hinzufügen AWT, Swing, JavaFX & SWT 4
A Komponente zur Laufzeit hinzufügen und RICHTIG anzeigen AWT, Swing, JavaFX & SWT 3
A JTextPane: Text hinzufügen AWT, Swing, JavaFX & SWT 9
R JPanel sehr große JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
U Dynamische Panel hinzufügen AWT, Swing, JavaFX & SWT 6
H Swing JTree hinzufügen AWT, Swing, JavaFX & SWT 5
R KeyListener - welcher Komponente hinzufügen AWT, Swing, JavaFX & SWT 5
D Swing JLIST: Hinzufügen neuer Informationen aus Dateistream AWT, Swing, JavaFX & SWT 2
B Swing Problem beim Elemente zu JList hinzufügen AWT, Swing, JavaFX & SWT 5
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
T Dynamisches hinzufügen und entfernen von Bildern AWT, Swing, JavaFX & SWT 3
S Buttons, Panels etc. zu einer Teilkomponente hinzufügen AWT, Swing, JavaFX & SWT 5
H JList einem MainPanel hinzufügen AWT, Swing, JavaFX & SWT 2
R KeyListener hinzufügen AWT, Swing, JavaFX & SWT 7
multiholle Swing JTable Schlüssel hinzufügen AWT, Swing, JavaFX & SWT 20
Meldanor JTables - Zeilen hinzufügen/löschen AWT, Swing, JavaFX & SWT 4
PAX JList aktualisiert zu langsam beim Hinzufügen von Einträgen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben