Array printen in JOptionPane

Status
Niet open voor verdere reacties.

Jaap84

Nieuwe gebruiker
Lid geworden
7 okt 2008
Berichten
1
Hallo!
Ik heb problemen met het printen van een 2 dimensionale array in een JOptionPane information message. Ik moet eerst een 2 dimensionale array [8][8] vullen. Dat lukt me ook niet echt. Ik moet namelijk als eindresultaat een information messagebox krijgen met de nummers 32 tot en met -31. Dus het begint van 32 31 30 29 28 27 enz.. tot -31.
En ik moet deze array printen in een JOptionPane met behulp van een method.
Ik heb van alles geprobeerd maar ik krijg alleen errors.
Ik heb tot zover dit gemaakt:

import javax.swing.JOptionPane;
public class Inzend2 {

/**
* @param args
*/
public static void main(String[] args) {
int [][]blasTable = new int [8][8];

for(int x = 0; x < blasTable.length; x--){
for(int y = 0; y < blasTable.length; y--){
blasTable[x][y] = 32;

}
}


}

public static void printIntArray(int[][] blasTable){



JOptionPane.showMessageDialog(null, blasTable,"resultaat", JOptionPane.INFORMATION_MESSAGE);


}

maar dit slaat waarschijnlijk nergens op aangezien ik errors krijg.
Dus als iemand enige aanwijzingen heeft zou ik dat erg op prijs stellen.
Bedankt voor de moeite!!
Jaap
 
1. Kijk eens of het aantal openingsaccoldaes gelijk is aan het aantal sluitingsaccolades. Tip: leer hoe je je programma moet layouten zodat je dat in 1 oogopslag kunt zien.
2. Wat betekent x-- hier en wat denk je hiermee te bereiken.
3. Welke argumenten verwacht JOptionPane.showMessageDialog(...) en wat stellen die voor?
 
je moet je --'s vervangen door ++ omdat je nu op de eerste plek begint en dan achteruit wilt, dat kan uiteraard niet IndexOutOfBoundsException.

je moet je x of je y koppelen aan de arrays in je array, je gaat er nu van uit dat je [8][8] gebruikt maar als je [8][7] gebruikt dan krijg je nogsteeds de IOOBException ( je moet dus y<blasTable[0].length doen.

en ik weet niet of je zo je array uit kunt printen of dat hij de locatie in het virtuele geheugen dan print, waarschrijnlijk moet je nog een genest for-loopje schrijven die de array in een string omzet/print en dan vervolgens deze string naar je messageDialog sturen.
 
Ik heb problemen met het printen van een 2 dimensionale array in een JOptionPane information message

... ja, dat geloof ik best. Dat komt omdat die JOptionPane.showMessageDialog een single string message laat zien. Die zijn niet gemaakt om tables in te printen, dus maak gewoon even je eigen JFrame:

Code:
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(300,300));
frame.setPositionRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);


Soms haat ik mezelf, als ik dit soort vragen zie hebben mijn vingers het antwoord al getyped voordat mijn hoofd heeft besloten dat 'ie wel wil helpen. volgens mij doet dit min of meer wat je wil. Moet je alleen de lussen nog een beetje aanpassen dat ze van -32 naar +32 lopen i.p.v. 1 naar 64 (hint: type -32 op de goede plaats!). Maar ik ga natuurlijk niet je hele schoolopdracht voorkauwen. LOWL.

Code:
import javax.swing.JOptionPane;
public class GridCreator {
	public int grid[][] = new int [8][8];
	
	public static void main(String[] args){
		new GridCreator();
	}
	
	public GridCreator(){
		JOptionPane.showMessageDialog(null, fillGrid());
		System.out.println(fillGrid());
	}
	
	public String fillGrid(){
		StringBuffer sb = new StringBuffer();
		for(int i = 0; i < grid.length; i++){
			for(int j = 0; j < grid[0].length; j++){
				grid[i][j] = (i+1) * (j+1);
				sb.append(grid[i][j]+"\t");
			}
			sb.append("\n");
		}
		return sb.toString();
	}
}
 
Laatst bewerkt:
Je kunt onder de: public class Inzend2{
public static int ROWS = 8;
public static int COLS = 8;
en dan onder de main method:
-------------new int [ROWS] [COLS];
 
topic is van 2008.
Daarom met rust laten en voorzien van een slot.
zie de forum regels


Reacties op topics ouder dan drie maanden worden niet op prijs gesteld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan