ArrayList Wert löschen klappt nicht

L

Lender

Gast
Guten Tag,

ich versuche aus meiner ArrayList ein Wert löschen leider klappt dies nicht wie ich will:(

Probiere das grade so:

Java:
public class test TableModel extends AbstractTableModel {
    Object[][] objects = new Object[1][3];
    private StammdatenDelegate delegate = StammdatenDelegate.getInstance();
    ArrayList<test > list = new ArrayList<test>();
    
    int COL_POS_NAME=0;
    int COL_POS_AKTIV=1;
    int COL_POS_SORT=2;
    
    int row=0;
    
    public void holeDaten(){
     	list = (ArrayList<test >) delegate.suchenallertests();
     	for(test entity:list){
     		addRow(entity, row);
     		row++;
     	}  	
    }
    private Object[][] data = new Object[][]{};
 
    public String getColumnName(int pos) {
        String[] cols = new String[]{
            "Name", "Aktiv", "Sotierung"
        };
        return cols[pos];
    }
    public int getRowCount() {
    	return data.length;
    }
    public int getColumnCount() {
        return 3;
    }
    public boolean isCellEditable(int row, int column) { 
    	return true ; 
    } 
	public void addRow(int position) {
		position = Math.max(0, Math.min(data.length, position));
	        Object[][] newObjects = new Object[data.length + 1][];
	
	        
	        System.arraycopy(data, 0, newObjects, 0, position);
	        System.arraycopy(data, position, newObjects, position + 1,
	            data.length - position);

	        newObjects[position] = new Object[getColumnCount()];
	        data = newObjects;

	        fireTableRowsInserted(position, position);
	    }
	public void addRow(test entity, int positionRow){
		 addRow(positionRow);
		 data[positionRow][COL_POS_NAME] = entity.getName();
		 data[positionRow][COL_POS_AKTIV]= entity.getAkiv();
		 data[positionRow][COL_POS_SORT] = entity.getSortierung();

	 }
    public void setValueAt(Object value, int row, int col) {
            data[row][col] = value;
            fireTableCellUpdated(row, col);
        }
    public void deleteRow(int positionRow) {
           	list.remove(positionRow);
           	holeDaten();
   		 	
    }
		@Override
	public Object getValueAt(int rowIndex, int columnIndex)
	    {
	        return data[rowIndex][columnIndex];
	    }
}
 
S

SlaterB

Gast
der Code enthält keinerlei Abläufe, niemand weiß wer wann warum evtl. die Methode deleteRow() aufruft,
falls es um die geht, was man auch noch erst erraten muss

edit:
> list.remove(positionRow);
> holeDaten();

nach dem remove die Liste eh komplett neu zu laden, ist recht widersinnig
 

ARadauer

Top Contributor
list.remove(positionRow);

und dann in hohle daten:
list = (ArrayList<test >) delegate.suchenallertests();

da überschreibst du dir deine liste wieder...
 
S

SlaterB

Gast
z.B.
list.remove(positionRow);
OHNE
holeDaten();
?

was ist denn daran so unverständlich?
wobei list eh wenig zu sagen hat, die anderen Methoden schauen ja eher aufs Array,
das zu kürzen ist wiederum eine komplizierte System.arraycopy-Geschichte

wie zuletzt schon vorgeschlagen: lasse das Array lieber weg, verwende nur die Liste, dann ist es fast nur der eine remove-Aufruf
 
L

lender

Gast
Hallo nochmal, leider kriege ich das garnicht hin :(

public void deleteRow(int positionRow) {
list.remove(positionRow);
fireTableRowsDeleted(positionRow, positionRow);
}

es sieht jetzt so aus... leider klappt dies nicht und ich verzweifel langsam
 

Michael...

Top Contributor
Du verwendest für die Darstellung bzw. Datenhaltung das Array data, daher kannst Du aus der ArrayList soviel rauslöschen wie Du willst, das ändert ja nichts an data.

Also entweder ArrayList oder Array für die Datenhaltung verwenden - eine globale Instanzvariable list ist in Deinem Code eher unnötig, da Du die Liste eigentlich nur in holeDaten() brauchst.
 
S

SlaterB

Gast
http://www.java-forum.org/awt-swing-swt/96402-daten-jtable-angezeigt.html

generell empfehle ich, auf das umständliche Array mit SystemCopy zu verzichten,
verwalte nur eine Liste der Daten und greife von getValueAt() auf die Liste zu

edit:
du füllst das Array etwa mit
data[positionRow][COL_POS_NAME] = entity.getName();

um dann greifst du mit x,y auf die entsprechende data-Postition zu,
genauso kannst du x als Listen-Index verwenden und je nach y den Namen oder sonstwas vom aktuellen Element zurückgeben (if/ else/ switch)
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
wie kann ich den eine arraylist anzeigen lassen?! also anstatt data?!
Das hängt immer der spezifischen Implementierung der Liste ab.
Schau dir mal das Prinzip des TableModels an - ich hab den Eindruck Du hast das noch nicht so ganz verstanden. z.B.
mit getValueAt(int row, int column) legst Du fest welcher Wert in welcher Zelle in der Tabelle verwendet wird
mit setValueAt(Object o, int row, int column) legst Du fest wohin der Wert der vom Anwender in Zelle xy geschrieben wurde ins Datenmodel geschrieben wird.

In Deinem Fall könnte die getValue in etwa so aussehen:
Java:
public Object getValueAt(int row, int column) {
    if (column==0)
        return list.get(row).getName();
    if (column==1)
        return list.get(row).getAktiv();
    ...
    return null;
}
 
M

mg_666

Gast
Also ich habe das irgendwann mal gemacht, wenn ein oder mehrere angezeigten Zeilen aus der Tabelle gelöscht werden sollten.
Eine zusätzliche Methode für das Löschen eines angezeigten Datensatzes.

Java:
public void loescheZeile(int argRow)
{

	for (int i = argRow; i < getRowCount(); i++)
	{
	    for (int j = 0; j < getColumnCount(); j++)
	    {
		if (i != (getRowCount() - 1))
		{
		    daten[i][j] = daten[i + 1][j];
		}
		else
	            {
		    daten[i][j] = null;
		}
	     }
            }
// Ruft die Methode der abstracten Klasse AbsctractTable auf
// ==> Zeile wird gel�scht
geloeschteZeilen++;
fireTableRowsDeleted(argRow, argRow);
}

...und die Methode getRowCount() dementsprechend bearbeitet.

Java:
@Override
public int getRowCount() 
{
	//Rueckgabe Anzahl der Zeilen
	if(daten!=null && daten.length > 0)
             {
		return daten.length - geloeschteZeilen;
	}
	return 0;
}

Alles spielt sich in einer erweiterten Klasse von AbstractTableModel statt.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
mrbody234 ArrayList<Message> in eine TableView visualisieren AWT, Swing, JavaFX & SWT 2
Encera ArrayList mit eigenen Objekten in JavaFX sortieren und ausgeben AWT, Swing, JavaFX & SWT 50
BananenBrötchen Swing Arraylist in jList anzeigen AWT, Swing, JavaFX & SWT 6
W Clear Canvas und anschließendes neues Erstellen von Objekten auf Canvas aus ArrayList AWT, Swing, JavaFX & SWT 4
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
B ArrayList, Strings anzeigen AWT, Swing, JavaFX & SWT 1
S JavaFx - ausgewählte Rows in Arraylist (Tableview) AWT, Swing, JavaFX & SWT 4
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
K Swing JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 4
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
B Klasse mit ArrayList AWT, Swing, JavaFX & SWT 1
I JTable dynamisch aus ArrayList befüllen AWT, Swing, JavaFX & SWT 3
ZoXlike Wie kann man ArrayList in JTabel einlesen? [WindowBuilder] AWT, Swing, JavaFX & SWT 1
D Swing ArrayList in Jlist/ List oder Array in JList/List AWT, Swing, JavaFX & SWT 5
E Eigenes TableModel für ArrayList<String[]> AWT, Swing, JavaFX & SWT 5
S ArrayList Problem AWT, Swing, JavaFX & SWT 3
T JTable dynamisch mit ArrayList AWT, Swing, JavaFX & SWT 2
S Swing JList, ArrayList + DefaultModel AWT, Swing, JavaFX & SWT 5
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
T Swing Ausgabe aus ArrayList in Klasse1 in jTextArea in Klasse2 AWT, Swing, JavaFX & SWT 2
E Problem mit ArrayList AWT, Swing, JavaFX & SWT 7
P Auf gefüllte ArrayList zugreifen AWT, Swing, JavaFX & SWT 12
P ArrayList Rectangles2D AWT, Swing, JavaFX & SWT 29
O JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 3
D Probleme bei Übertrag von ArrayList in Jtable AWT, Swing, JavaFX & SWT 2
F Swing ArrayList in JList anzeigen und Objekte auswählen AWT, Swing, JavaFX & SWT 2
L AWT paint mit ArrayList und Iterator AWT, Swing, JavaFX & SWT 3
Z Swing JButton,JFrame, ArrayList & so weiter... AWT, Swing, JavaFX & SWT 20
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
G Swing Elemente aus Arraylist auf JFrame anzeigen AWT, Swing, JavaFX & SWT 9
S JTable - 2D ArrayList & Falsche Werte. AWT, Swing, JavaFX & SWT 3
Screen Fehler bei Get-Methode für ArrayList AWT, Swing, JavaFX & SWT 8
M Swing JTable soll auf ArrayList zugreifen AWT, Swing, JavaFX & SWT 8
B Swing JButtons in eine Arraylist<JButton> einfügen AWT, Swing, JavaFX & SWT 2
J Daten aus einer Textdatei in ArrayList holen AWT, Swing, JavaFX & SWT 9
J ArrayList Inhalt zählen AWT, Swing, JavaFX & SWT 53
J ArrayList Datensätze komplett löschen AWT, Swing, JavaFX & SWT 8
J ArrayList Datensätze auswerten AWT, Swing, JavaFX & SWT 10
Y Swing Aktualisieren eines JPanel mit ArrayList im TableLayout AWT, Swing, JavaFX & SWT 2
M ArrayList in 2D Array umfüllen AWT, Swing, JavaFX & SWT 9
C Swing ArrayList in JComboBox AWT, Swing, JavaFX & SWT 6
H ArrayList?! in Tabelle AWT, Swing, JavaFX & SWT 3
B ArrayList in JTable AWT, Swing, JavaFX & SWT 3
B ArrayList im JTextArea anzeigen lassen AWT, Swing, JavaFX & SWT 30
Ollek JTable - Tabelle füllen mit einer ArrayList AWT, Swing, JavaFX & SWT 22
T ArrayList aus KlasseA in KlasseB in JTextArea ausgeben AWT, Swing, JavaFX & SWT 12
KrokoDiehl EventListenerList vs. ArrayList AWT, Swing, JavaFX & SWT 3
I Swing JTree aus ArrayList<File> erzeugen AWT, Swing, JavaFX & SWT 15
C Swing ArrayList in jList AWT, Swing, JavaFX & SWT 3
Spot84 jtable mit checkboxnode dynamisch per arraylist füllen AWT, Swing, JavaFX & SWT 8
G Wie lasse ich einen Graphen zeichnen(mit einer ArrayList)? AWT, Swing, JavaFX & SWT 5
S Tree - ArrayList Zuordnung! AWT, Swing, JavaFX & SWT 13
nadal15 JTable und ArrayList - selected rows löschen AWT, Swing, JavaFX & SWT 6
G JTable - TableModel aus ArrayList AWT, Swing, JavaFX & SWT 8
QDog JComboBox updaten, ArrayList AWT, Swing, JavaFX & SWT 7
D JLabel's in einer ArrayList speichern? AWT, Swing, JavaFX & SWT 4
G jList mit ArrayList füllen AWT, Swing, JavaFX & SWT 3
G datensätze aus der db in einer arraylist speicher und in gui AWT, Swing, JavaFX & SWT 4
G Aus Arraylist bestimmte Objekte wiedergegeben bekommen? AWT, Swing, JavaFX & SWT 7
L JTable und Daten aus einer ArrayList AWT, Swing, JavaFX & SWT 6
A Components in einer ArrayList aus anderer Klasse speichern AWT, Swing, JavaFX & SWT 8
S Anzahl ActionEvents (Strings in eine ArrayList einfügen) AWT, Swing, JavaFX & SWT 4
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
S hashCode int wert AWT, Swing, JavaFX & SWT 6
B Slider-Wert an anderen Slider übergeben AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
S Caps-Lock Überprüfung gibt falschen Wert zurück AWT, Swing, JavaFX & SWT 1
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
K Swing DefaultListModel braucht zu lange, um Wert zu setzen AWT, Swing, JavaFX & SWT 7
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
M JavaFX Wert aus Tabellenzelle auslesen AWT, Swing, JavaFX & SWT 4
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
A Unterklasse schreibt Wert in JFrame AWT, Swing, JavaFX & SWT 4
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
M Swing Alter Wert von einer Variable wird verwendet AWT, Swing, JavaFX & SWT 8
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15

Ähnliche Java Themen

Neue Themen


Oben