JComponents in Array

LatinFavourite

Bekanntes Mitglied
Hallo Leute,

ich muss ich euch leider noch einmal mit einem Problem von mir nerven. Habe heute so viel an meinem Programm geändert, ich sehe schon den Wald vor lauter Bäumen nicht mehr. :-(

Ich kann in meinem Programm den Zustand vieler JComponents in einer Textdatei speichern und das funktioniert dank eurer Unterstützung auch. Auch das Laden funktioniert, nur werden die Höhe und Breite vertauscht. Es werden also genau die falschen JComponents gesetzt. Habe alle Schleifen verglichen und weiß einfach nicht weiter und bin bereits am Verzweifeln. Grund für das Ändern war eine ständige index out of bounds exception. :(

Java:
public Map loadMap(File fileToLoad){
			
		try{
			BufferedReader br = new BufferedReader(new FileReader(fileToLoad));
			width = Integer.parseInt(br.readLine());
			height = Integer.parseInt(br.readLine());
		
			Map map = new Map(height, width);
			
			int[][] tileInput = new int[height][width];
			
			String delimiters = " ";
			for(int i=0; i<map.height; ++i){
				String line = br.readLine();
				String[] tokens = line.split(delimiters);
				for(int j=0; j<map.width; ++j){
					tileInput[i][j] = Integer.parseInt(tokens[j]);
				}
			}
			
			for(int i=0; i<map.height; ++i){
				for(int j=0; j<map.width; ++j){
					if(tileInput[i][j] == 1){
						map.tiles[i][j].setPressed(true);
						map.tiles[i][j].setColor(Color.red);
					}
					if(tileInput[i][j] == 0){
						map.tiles[i][j].setPressed(false);
					}
				}
			}
			
			return map;



Java:
public void getNewMap(Map grid){
		this.grid = grid;
		
		raster = new JPanel(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		Tile tile;
		
		for(int i=0; i<grid.getHeight(); ++i){
			for(int j=0; j<grid.getWidth(); ++j){
				c.gridx = i;
				c.gridy = j;
				tile = grid.getTile(i, j);
				raster.add(tile, c);
			}
		}
		this.remove(pane);
		
		pane = new JScrollPane(raster);
		
		this.add(pane, BorderLayout.CENTER);
		validate();
		
	}


Map Konstruktor
Java:
public Map(int width, int height){
		this.width = width;
		this.height = height;
		tiles = new Tile[this.height][this.width];
		
		for(int i=0; i<height; ++i){
			for(int j=0; j<width; ++j){
				tiles[i][j] = new Tile();
			}
		}
	}


Bekomme beim Einlesen nun eine NullPointerException. ;(
 
Zuletzt bearbeitet:

strußi

Top Contributor
Java:
for(int i=0; i<grid.getHeight(); ++i){
	for(int j=0; j<grid.getWidth(); ++j){
		c.gridx = i;  //x ist width 
		c.gridy = j; // y ist height
		tile = grid.getTile(i, j);
		raster.add(tile, c);
	}
}

dein c.gridx =i; müsste j, und c.gridy =j müsste i sein hab dir das im Code kommentiert.

kannst du noch bitte deine npe meldung posten, da steht meistens drin wo der fehler geworfen wird

gn8
 
Zuletzt bearbeitet:

LatinFavourite

Bekanntes Mitglied
Hallo,
erst einmal danke euch beiden.


@strußi, danke, das habe ich nun geändert.

@Enceladus271 Ok, genau da bin ich verwirrt. Ich komme irgendwie mit dem width und height durcheinander. Soll die äußere Schleife über height laufen und die innere über width? Habe es nun geändert. Keine Veränderung.


Java:
Map map = new Map(width, height);


Meine Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Map.loadMap(Map.java:179)
at View.loadDialog(View.java:173)
at Controller$LoadListener.actionPerformed(Controller.java:90)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:137)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6414)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
at java.awt.Component.processEvent(Component.java:6179)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4279)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Java:
public void loadDialog(){
		JFileChooser loadChooser = new JFileChooser();
		loadChooser.addChoosableFileFilter(new FileNameExtensionFilter(".txt", "txt"));
		int selection = loadChooser.showOpenDialog(null);
		
		if(selection == JFileChooser.APPROVE_OPTION){
			File fileToLoad = loadChooser.getSelectedFile();
			grid = grid.loadMap(fileToLoad);
			getNewMap(grid);
		}
	}
 
Zuletzt bearbeitet:

LatinFavourite

Bekanntes Mitglied
Bekomme nun nur noch selten den Fehler, beim Laden einer Map mit width = 40 und height = 5 kommt es jedoch zu einer NullPointerException. Habe mir einmal die Indices i und j ausgeben lassen. Bis i=0 und j=39 wird es ausgegeben, dann folgt die Exception. Hat einer von euch noch einen Rat, das wäre super. :)

Ich habe das Array mit Tokens in Verdacht.

Java:
tileInput[i][j] = Integer.parseInt(tokens[j]);




Java:
for(int i=0; i<map.height; ++i){
				String line = br.readLine();
				String[] tokens = line.split(delimiters);
				for(int j=0; j<map.width; ++j){
					System.out.println("i: " + i + " j: " + j);
					tileInput[i][j] = Integer.parseInt(tokens[j]);
				}
			}
 
Zuletzt bearbeitet:

Enceladus271

Bekanntes Mitglied
Die genaue Zeile wo die NPE auftritt steht doch im Stacktrace. Allerdings können wir hier nicht sehen welche Zeile das ist, da die Zeilenangaben in deinem geposteten Code nicht mit den Zeilenangeben deines gesamten Codes übereinstimmen. Wenn wir dir weiterhelfen sollen musst du uns sagen welche Zeile das ist.
 

strußi

Top Contributor
dreh mal die inkremetierung am ende der for-schleife von ++i auf i++,
nehmen die länge deines ziehlarrays als abbruch-bedinung

das könnte helfen
 

LatinFavourite

Bekanntes Mitglied
Danke euch beiden. :) @strußi: Welchen Effekt hat denn das Umstellen, kurioserweise funktioniert es jetzt für die entsprechende Datei. Hatte auch noch keine Exception mehr. :) Mir wurde immer gesagt, ich sollte ++i verwenden. Lieben Gruß
 

LatinFavourite

Bekanntes Mitglied
Stimmt, das ist so nervig, Vor allem wird der Link schnell für hilfreich gehalten und dann erscheint nur blöde Werbung. Dieser Dating Link ist noch schlimmer.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Swing Wie sollte man seine JComponents vererben? AWT, Swing, JavaFX & SWT 3
T Swing Drag and Drop für JComponents AWT, Swing, JavaFX & SWT 1
T JComponents zur Laufzeit auf JPanel darstellen AWT, Swing, JavaFX & SWT 10
L JComponents vertauschen AWT, Swing, JavaFX & SWT 2
A Swing Darstellung von JComponents in Swing AWT, Swing, JavaFX & SWT 14
B Ablauf der paint-Methoden von JComponents AWT, Swing, JavaFX & SWT 20
M JComponents wird nicht anggezeigt AWT, Swing, JavaFX & SWT 5
P Selbstgezeichnete JComponents AWT, Swing, JavaFX & SWT 5
H Drag&Drop von JComponents AWT, Swing, JavaFX & SWT 6
G JComponents tag vergeben AWT, Swing, JavaFX & SWT 6
M Linie zwischen JComponents AWT, Swing, JavaFX & SWT 5
T JComponents abändern/modifizieren z.b. JSlider AWT, Swing, JavaFX & SWT 2
N Rahmen zum editieren der Größe eines JComponents? AWT, Swing, JavaFX & SWT 2
N Mehrere JComponents übereinander AWT, Swing, JavaFX & SWT 3
G JComponents AWT, Swing, JavaFX & SWT 4
D Problem beim Update von unsichtbaren JComponents mit Timern AWT, Swing, JavaFX & SWT 5
izoards JavaFX TableView mit Array Inhalt füllen AWT, Swing, JavaFX & SWT 1
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
A 2d array AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
M Swing Objekt Array in GUI ausgeben AWT, Swing, JavaFX & SWT 1
N Array mit JavaFX Elementen AWT, Swing, JavaFX & SWT 9
H Aus Array Container Panel an Tabbedpane zuweisen AWT, Swing, JavaFX & SWT 29
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
J index im Array aussuchen AWT, Swing, JavaFX & SWT 1
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
G JavaFX Fenster 1 Array übertragen zur Fenster 2 AWT, Swing, JavaFX & SWT 0
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
F JList auffüllen aus Array von Instanzen AWT, Swing, JavaFX & SWT 4
kilopack15 JLabels im Array erzeugen AWT, Swing, JavaFX & SWT 2
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
M JavaFX - Array in View auslesen AWT, Swing, JavaFX & SWT 12
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
beatles Swing JTextField - Game Status aus Array anzeigen AWT, Swing, JavaFX & SWT 3
KilledByCheese Swing 2D JLabel Array Maze zeichnen AWT, Swing, JavaFX & SWT 2
Viktim Array Spielfeld wird in GUI gedreht AWT, Swing, JavaFX & SWT 5
T JTextField Array im JPanel wird nicht komplett angezeigt AWT, Swing, JavaFX & SWT 7
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
B Array Java AWT, Swing, JavaFX & SWT 0
S JTable Daten aus Array AWT, Swing, JavaFX & SWT 9
K Array von einer Action zur anderen bringen AWT, Swing, JavaFX & SWT 7
D Swing ArrayList in Jlist/ List oder Array in JList/List AWT, Swing, JavaFX & SWT 5
O 2D Weltgenerieren - 2D Array AWT, Swing, JavaFX & SWT 1
W Bei Button-klick neuen button in array hinzufügen AWT, Swing, JavaFX & SWT 7
H Image im Array per Knopfdruck ändern AWT, Swing, JavaFX & SWT 6
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
F Swing Java Swing Array in Datei und wieder raus AWT, Swing, JavaFX & SWT 7
L 2D-Grafik PNG Datei in JLabel Array Problem AWT, Swing, JavaFX & SWT 4
R Array aus einem Objekt auslesen AWT, Swing, JavaFX & SWT 4
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
A Array von JLabel mit Grafiken anzeigen AWT, Swing, JavaFX & SWT 3
J 2D-Grafik String aus array wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S Swing Jcombobox und array AWT, Swing, JavaFX & SWT 6
M Swing Array aus anderer Klasse AWT, Swing, JavaFX & SWT 6
M Array grafisch darstellen AWT, Swing, JavaFX & SWT 9
P 2D-Grafik versch. Rectangles aus array von textfelder zeichen AWT, Swing, JavaFX & SWT 6
V Swing Componenten Array AWT, Swing, JavaFX & SWT 3
P Grauwerte aus 3-Dimensionalem Array in Bild AWT, Swing, JavaFX & SWT 9
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
B Swing JMenuButtons mit Funktionen aus Array erstellen AWT, Swing, JavaFX & SWT 4
A JComboBox-Inhalt durch neues Array ersetzen AWT, Swing, JavaFX & SWT 2
A JButton in einem Array aktualisieren AWT, Swing, JavaFX & SWT 8
K Applet Wieso kann ich keine Array im Applet initialisieren AWT, Swing, JavaFX & SWT 13
S String Array Ausgabe im JLabel ??? AWT, Swing, JavaFX & SWT 8
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
H 2D-Grafik BufferedImage aus Integer-Array AWT, Swing, JavaFX & SWT 3
H Puzzle - Listen erstellen, array & liste vergleichen AWT, Swing, JavaFX & SWT 28
H Puzzle - Erkennen wenn gelöst (array vergleichen) AWT, Swing, JavaFX & SWT 10
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
W Swing Bei einem 2-dimensionalen array, bei mouseClicked index zuordnen AWT, Swing, JavaFX & SWT 2
Jats Bitte um Hilfe bei JComboBox mit Array AWT, Swing, JavaFX & SWT 6
N Swing Von 2 dimensionalem Array auf JTextfield schließen und färben AWT, Swing, JavaFX & SWT 6
H JList zeigt die Daten aus dem Array nicht an! AWT, Swing, JavaFX & SWT 13
M Swing Zweidimensionales Array mit Farben erzeugen AWT, Swing, JavaFX & SWT 16
W Button Array ? AWT, Swing, JavaFX & SWT 10
X JLabel und mehrdimensionales Array AWT, Swing, JavaFX & SWT 2
T Swing 2d Array zeichnen AWT, Swing, JavaFX & SWT 4
M ArrayList in 2D Array umfüllen AWT, Swing, JavaFX & SWT 9
F Swing String Array mit JTextArea anzeigen AWT, Swing, JavaFX & SWT 13
E ResultSet als Array an JTable übergeben AWT, Swing, JavaFX & SWT 9
D Bild zeichnen lassen aus array, null pointer Exception AWT, Swing, JavaFX & SWT 2
D Pixel in ein Array einlesen AWT, Swing, JavaFX & SWT 2
S Koordinaten aus Array verwenden zum zeichnen auf JPanel?! AWT, Swing, JavaFX & SWT 3
Developer_X Verzwicktes Problemchen mit Panel-Array AWT, Swing, JavaFX & SWT 5
JavaKaffee Array auslesen in jTextPane? AWT, Swing, JavaFX & SWT 9
N Swing Problem beim Einlesen von Jtable in Array AWT, Swing, JavaFX & SWT 5
S Swing ComboBox aus Array befüllen AWT, Swing, JavaFX & SWT 2
T Swing JTable und mehrdimensionales Array AWT, Swing, JavaFX & SWT 2
D Verschiedene ActionEvents für ein JButton-Array AWT, Swing, JavaFX & SWT 2
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
W Objekt-array als Raster visualisieren AWT, Swing, JavaFX & SWT 3
C JPanel-Array in GridLayout AWT, Swing, JavaFX & SWT 4
S Array+INfoBox AWT, Swing, JavaFX & SWT 7
A Array wird im JOptionPane mehrfach ausgegeben AWT, Swing, JavaFX & SWT 3
B JButton+Array AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben