Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: data must

Status
Nicht offen für weitere Antworten.

Spin

Top Contributor
Hi liebe Community :


Folgendes :

Java:
 public void ausgabeProduktliste(){
 	model = new MyTableModel(this.getProduktliste());
        for (Produkt p : getProduktliste()) {
                  

                   System.out.println(p);
    	        }}

ich möchte hier gerne die daten einem TabeModel übergeben.
Aber er sagt mir , dass sie null sind :/


Warum :???
Java:
 for (Produkt p : getProduktliste()) {
                  

                   System.out.println(p);
    	        }}


Das wiederum gibt mir alle daten aus der datenbank .


Ich habe alle daten einer liste hinzugefügt und wollte die nun weiierreichen an ein Table MOdel.


Java:
public class MyTableModel extends AbstractTableModel {


    private List<Produkt> data;

    public MyTableModel(List<Produkt> p_data) {
          data = p_data;
         if(data == null)
        {
           throw new IllegalArgumentException("data must not be null");
        }

    }


Diese Exception wirft er :(
Weiß einer einen Rat?

Vielen dank
 

Painii

Bekanntes Mitglied
dein p_data-Argument wird wohl null sein.
Wo die herkommt kann man in deinem Code noch nicht sehen.

Achja, du solltest erst die Argumente überprüfen bevor du die data setzt.
Erst das alte löschen und dann schauen ob das neue überhaupt geht ist nicht gut ;)
 

Spin

Top Contributor
Java:
	public Object getValueAt(int rowIndex, int columnIndex) {
            
             
                 Produkt erg = data.get(rowIndex);
             
		switch (columnIndex) {
		case 0:
			return erg.getName();
		case 1:
			return erg.getAnmerkung();
		case 2:
			return erg.getPreis();
		case 3:
			return erg.getInhaltsmenge();
		default:
			throw new IllegalArgumentException(String.format("Column {0} does not exist", columnIndex));
		}
	}



Hier ist es genau so :

(das andere geht nun :) )

Ich brauche hier die ganzen Produkte , bekomme sie aber nicht .

Versuche es mit einer schleife , aber dann stürzt mich der java syntax :/

weiß einer da nen rat?
 

Marco13

Top Contributor
Code:
Object test = this.getProduktliste();
System.out.println("Erstelle model mit "+test);
model = new MyTableModel(test);
System.out.println("Erstelle model mit "+test+" FERTIG");
Was wird ausgegeben?

EDIT: Zu spät....
 

Spin

Top Contributor
Java:
public class MyTableModel extends AbstractTableModel {


  List<Produkt> data;
  Produkt a;

    public MyTableModel(List<Produkt> p_data) {
         this.data = p_data;


         if(data == null)
        {
           throw new IllegalArgumentException("data must not be null");
        }
         for(Produkt p: data){
            int i=0;
            int j=0;
            this.setValueAt(p,i++, j++);
         }



    }
 
    public MyTableModel() {
    }

        public int getColumnCount() {
		return 4;
	}

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



        // Tabelle bauen
    @Override
        public void setValueAt(Object value, int row, int col) {

        // Listen daten epmfangen
          value = data.get(row);
          value =a;
          switch (col) {
		case 0:
			a.getName();
		case 1:
			a.getAnmerkung();
		case 2:
			a.getPreis();
		case 3:
			a.getInhaltsmenge();
		default:
			throw new IllegalArgumentException(String.format("Column {0} does not exist", col));
		}

        }
     

    




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

	


	@Override
	public String getColumnName(int column) {
		switch (column) {
		case 0:
			return "Name";
		case 1:
			return "Beschreibung";
		case 2:
			return "Preis";
		case 3:
			return "Menge";
		default:
			throw new IllegalArgumentException(String.format("Column {0} does not exist", column));
		}
	}
     
}



Ich habe nen eigenes Model. Nun möchte ich meinen daten aus der datenbank in die tabelle schreiben.

Irgendwie da rein.

Alle daten sind in der liste , die ich mit einer vorschleife auslese.
Nun sollen alle Objekte in die tabelle.

Dazu muss ich sie setObjectAt methode modifizieren . Bekomme es aber nicht hin :/

Kann da einer helfen?


danke marco :)
 

Marco13

Top Contributor
Das Stimmt einiges nicht
Code:
for(Produkt p: data){
            int i=0;
            int j=0;
            this.setValueAt(p,i++, j++);
         }
was soll diese Schleife wenn machen? Lass' dir mal i und j in jedem Schleifendurchlauf ausgeben.

Bei der setValueAt beißt sich die Katze in den Schwanz. Get-Methoden braucht's da eigentlich nicht...

Anfangen könnte die mit sowas wie
Code:
public void setValueAt(Object value, int row, int col) {
 
    Produkt produkt = (Produckt)data.get(row);
    switch (col) {
        case 0:
            produkt.setName((String)value);
        case 1:
           ...
        }
 

Spin

Top Contributor
Java:
public class MyTableModel extends AbstractTableModel {

  Produktliste model = new Produktliste();

  List<Produkt> data;
  Produkt a;

    public MyTableModel() {
      this.data = model.getProduktliste();
      this.data = new ArrayList<Produkt>();
      
      if(data == null)
        {
           throw new IllegalArgumentException("data must not be null");
        }

    }
     public int getColumnCount() {
		return 4;
	}

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



        // Tabelle bauen
    @Override
        public void setValueAt(Object value, int row, int col) {


        System.out.println(value +"" + row + "" + col);
        // Listen daten epmfangen


        Produkt produkt = (Produkt)data.get(row);
        switch (col) {
            case 0:
                produkt.setName((String)value);
            case 1:
		produkt.setName((String)value);
            case 2:
		produkt.setName((String)value);
            case 3:
		produkt.setName((String)value);
            default:
			throw new IllegalArgumentException(String.format("Column {0} does not exist", col));
		}
         
    }

    




	public Object getValueAt(int row, int col) {
        return null;
    }

	


	@Override
	public String getColumnName(int column) {
		switch (column) {
		case 0:
			return "Name";
		case 1:
			return "Beschreibung";
		case 2:
			return "Preis";
		case 3:
			return "Menge";
		default:
			throw new IllegalArgumentException(String.format("Column {0} does not exist", column));
		}
	}
     
}



die andere kasse:

Java:
public class Produktliste{
    
    private String pg_name; /* Name der Produktgruppe*/
    private List<Produkt> produktliste; /*Liste der Produktgruppe*/
    
   

    public Produktliste() {
    }


    public Produktliste(String p_name) {
        this.pg_name=p_name;
        this.produktliste = new ArrayList<Produkt>();
    }
    
   
    public void produktliste(Produkt p_produkt) {
        getProduktliste().add(p_produkt);
    }


    public void ausgabeProduktliste(){


        for (Produkt p : getProduktliste()) {
                  

                   System.out.println(p);
    	        }}
    	   
    public String getPg_name() {
        return pg_name;
    }
    public void setPg_name(String pgName) {
        pg_name = pgName;
    }

    /**
     * @return the produktliste
     */
    public /* Name der Produktgruppe*/
    List<Produkt> getProduktliste() {
        return produktliste;
    }

    /**
     * @param produktliste the produktliste to set
     */
    public void setProduktliste(List<Produkt> produktliste) {
        this.produktliste = produktliste;
    }



   
    
    
 
    
 
}



Ich versuche mit der Referenz model ..die produktliste zu holen.

Und die dann in die tabelle einzufügen.
Aber das geht irgendwie nicht :/

Java:
while (rs.next()) {

                String gruppe = "Getraenke";
                a = new Produkt(rs.getString("name"), "schwarz", 1.00, 1, 35993, "Getraenke");

 //                a = new Produkt(rs.getString("name"), rs.getString("anmerkung"),
//                        rs.getDouble("preis"), rs.getInt("inhaltsmenge"), rs.getInt("barcodenummer"),
//                        gruppe);
                b = new Produktliste(gruppe);
                b.produktliste(a);
                b.ausgabeProduktliste();
              }

und hier lasse ich die produkte aus der datenbank lesen.
In der konsole geht das alles :)

aber arum net in der table :/


danke
 

chri

Mitglied
Java:
    public Object getValueAt(int rowIndex, int columnIndex) {
        Produkt erg = data.get(rowIndex);
             
        switch (columnIndex) {
        case 0:
            return erg.getName();
        case 1:
            return erg.getAnmerkung();
        case 2:
            return erg.getPreis();
        case 3:
            return erg.getInhaltsmenge();
        default:
            throw new IllegalArgumentException(String.format("Column {0} does not exist", columnIndex));
        }
    }

Für das Zeichnen der Tabelle wird die getValueAt() Methode verwendet. Die gehört wieder rein.

Oft hat die table es einfach noch nicht realisiert, dass sich daten verändert haben -> tableModel.fireTableDataChanged(); oder ähnliche helfen hier aus.
 

Spin

Top Contributor
Java:
 */

package kuehlschranksystem.gui;

/**
 *
 * @author Spin
 */

import kuehlschranksystem.*;
import datenbank.*;



import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;

public class MyTableModel extends AbstractTableModel {


  Produktliste liste = new Produktliste();
  private List<Produkt> produkte = new ArrayList<Produkt>();
  private Vector listeners = new Vector();

//  List<Produkt> data;
  Produkt a;


    public MyTableModel() {
      this.produkte = liste.getProduktliste();


      if(produkte == null)
        {
           throw new IllegalArgumentException("data must not be null");
        }

    }
    
    // Die Anzahl Spalten
	public int getColumnCount() {
		return 4;
	}

	// Die Anzahl Vehikel
	public int getRowCount() {
		return produkte.size();
	}

	// Die Titel der einzelnen Columns
    @Override
	public String getColumnName(int column) {
		switch( column ){
			case 0: return "Name";
			case 1: return "Beschreibung";
			case 2: return "Preis";
			case 3: return "Menge";
			default: return null;
		}
	}
    // Der Wert der Zelle (rowIndex, columnIndex)
	public Object getValueAt(int rowIndex, int columnIndex) {
		Produkt p = (Produkt)produkte.get( rowIndex );

		switch( columnIndex ){
			case 0: return p.getName();
			case 1: return p.getName();
			case 2: return p.getName();
			case 3: return p.getName();
			default: return null;
		}
	}

	// Eine Angabe, welchen Typ von Objekten in den Columns angezeigt werden soll
	public Class getColumnClass(int columnIndex) {
		switch( columnIndex ){
			case 0: return String.class;
			case 1: return String.class;
			case 2: return String.class;
			case 3: return String.class;
			default: return null;
		}
	}

	public void addTableModelListener(TableModelListener l) {
		listeners.add( l );
	}
	public void removeTableModelListener(TableModelListener l) {
		listeners.remove( l );
	}


	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return false;
	}
	public void setValueAt(Object value, int row, int col) {
		System.out.println(value +"" + row + "" + col);
                  // Listen daten epmfangen
	}

        /* Neues Produkt der Tabelle hinzufügen,
         * nachdem der Button speichern gedrückt wurde */

        public void addProdukt( Produkt p ){
		// Das wird der Index des Vehikels werden
		int index = produkte.size();
		produkte.add( p );

		// Jetzt werden alle Listeners benachrichtigt

		// Zuerst ein Event, "neue Row an der Stelle index" herstellen
		TableModelEvent e = new TableModelEvent( this, index, index,
				TableModelEvent.ALL_COLUMNS, TableModelEvent.INSERT );

		// Nun das Event verschicken
		for( int i = 0, n = listeners.size(); i<n; i++ ){
			((TableModelListener)listeners.get( i )).tableChanged( e );
		}
	}
     
}




Ich habe es mal eben ein wenig erweitert.

Mein Problem ist dass er einfach nicht die Daten aus der liste bekommt.



Java:
public class Produktliste{
    
    private String pg_name; /* Name der Produktgruppe*/
    List<Produkt> produktliste; /*Liste der Produktgruppe*/

    
   

    public Produktliste() {
    }


    public Produktliste(String p_name) {
        this.pg_name=p_name;
        this.produktliste = new ArrayList<Produkt>();
    }

   public List<Produkt> getProduktliste(){
       return produktliste;
   }
   
    public void hinzuProduktliste(Produkt p_produkt) {
        produktliste.add(p_produkt);
    }


    public void ausgabeProduktliste(){


        for (Produkt p : produktliste) {
             System.out.println(p);
    	        }}
    	   
    public String getPg_name() {
        return pg_name;
    }
    public void setPg_name(String pgName) {
        pg_name = pgName;
    }





   
    
    
 
    
 
}




Hier werden der produktliste die Daten hinzugefügt, und es klappt wunderbar.
Daher auch ne schöne konsolen ausgabe :

Java:
Produkte - Name:erterterd, Anmerkung:schwarz, Inhaltsmenge:1, MaxPreis:1.0.
Produkte - Name:ha, Anmerkung:schwarz, Inhaltsmenge:1, MaxPreis:1.0.
Produkte - Name:ha, Anmerkung:schwarz, Inhaltsmenge:1, MaxPreis:1.0.
Produkte - Name:ha, Anmerkung:schwarz, Inhaltsmenge:1, MaxPreis:1.0.
Produkte - Name:weer, Anmerkung:schwarz, Inhaltsmenge:1, MaxPreis:1.0.


er sagt mir IllegalArgumentException.

Weil irgendie null und falsch ist .
Aber ich verstehe es nicht.

Ich übergebe dem ganzen doch eine Array Liste und trotzdem geht es nicht.
Wenn die Daten nur im Model wären , dann würde ich denke ich weiter kommen.

danke


Java:
Produkte - Name:weer, Anmerkung:schwarz, Inhaltsmenge:1, MaxPreis:1.0.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at kuehlschranksystem.gui.MyTableModel.getRowCount(MyTableModel.java:55)
        at javax.swing.JTable.getRowCount(JTable.java:2584)
        at javax.swing.plaf.basic.BasicTableUI.createTableSize(BasicTableUI.java:1646)
        at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(BasicTableUI.java:1687)
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Im TableModel erstellst du eine Produktliste liste = new Produktliste();
Bei getProduktliste() liefert die "null" zurück. Füge die Zeile this.produktliste = new ArrayList<Produkt>(); ein. Wo, musst du erraten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
D Exception in thread "AWT-EventQueue-0" Java Basics - Anfänger-Themen 8
C Exception in thread "AWT-EventQueue-0 Java Basics - Anfänger-Themen 15
M Exception in thread "AWT-EventQueue-0" Java Basics - Anfänger-Themen 7
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
J Datentypen Exception in thread "AWT-EventQueue-0"?? Java Basics - Anfänger-Themen 4
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
J Exception in thread "main" Java Basics - Anfänger-Themen 1
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
K Exception in thread "main" Java Basics - Anfänger-Themen 7
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
D Exception in thread "main" Java Basics - Anfänger-Themen 8
A Exception in thread "main" Java Basics - Anfänger-Themen 7
A Exception aus Thread werfen Java Basics - Anfänger-Themen 14
S Exception in thread "main" Java Basics - Anfänger-Themen 3
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
T Thread 2x starten verursacht Exception Java Basics - Anfänger-Themen 3
L Bubblesort: Exception in Thread "main" Java Basics - Anfänger-Themen 5
Y Exception in thread Java Basics - Anfänger-Themen 11
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
A GELÖST -- Exception in thread "main" Java Basics - Anfänger-Themen 3
B Fehlermeldung - Exception in thread "main" java.lang.Error: Unresolved compilation pr Java Basics - Anfänger-Themen 16
E Fehler: "Exception in thread "main" java.lang.NoSuchMethodError" Java Basics - Anfänger-Themen 15
G Fehler: Exception in thread main java.lang.noClassDefFound Java Basics - Anfänger-Themen 7
L Exception in thread "main" java.util.NoSuchElement Java Basics - Anfänger-Themen 4
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
M "exception in thread "main" java.lang.NullPoi Java Basics - Anfänger-Themen 2
S Exception in thread "main" java.lang.UnsupportedCl Java Basics - Anfänger-Themen 4
P Exception in thread "main" Java Basics - Anfänger-Themen 4
O java.lang.NoClassDefFoundError Exception in thread "mai Java Basics - Anfänger-Themen 5
V Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 21
S Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
S Exception in thread Java Basics - Anfänger-Themen 7
NightmareVirus Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 8
A "Exception in thread "main" java.lang.NoCLass Java Basics - Anfänger-Themen 10
N exception in thread main . Java Basics - Anfänger-Themen 3
A Exception in thread "Thread-33" java.lang.NoClassD Java Basics - Anfänger-Themen 10
C Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 9
vogella Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
F Fehlermeldung: Exception in thread. Java Basics - Anfänger-Themen 17
R Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 6
C exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 7
A Fehlermeldung: Exception in thread "main" java.lan Java Basics - Anfänger-Themen 3
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 3
G Exception in thread Java Basics - Anfänger-Themen 9
R Exception in Thread "main" . Kommandozeile/Netbean Java Basics - Anfänger-Themen 8
L Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerEx Java Basics - Anfänger-Themen 10
B Exception in thread "main"... Java Basics - Anfänger-Themen 3
H exception in thread mainjava.lang.noclass ... Java Basics - Anfänger-Themen 3
L Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
K Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 8
J Exception in thread "main" java.langClassNoFoundEr Java Basics - Anfänger-Themen 2
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 5
B Fehler: Exception in Thread "main" java.lang.NoCla Java Basics - Anfänger-Themen 2
G Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 2
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben