Gå til innhold

[LØST]Legge inn data i 2-dimensjonale arrays


Anbefalte innlegg

Heia

 

Veldig nybegynner på Java her. Driver og prøver på å legge inn data i en JTable, men får en syntax error jeg skjønner fint lite av.

 

import javax.swing.JTable;

public class TransactionTable {

private Account account;

public TransactionTable(Account acc) {
	this.account = acc;
}

public void createTable() {

	String[] columnNames = {"Amount", "Description", "Date"};

	Object[][] data = null;

	for(int row = 0; row < account.getTransactions().size(); row++) {

		Transaction currentTransaction = account.getTransactions().get(row);


		data[row] = {currentTransaction.getAmount(), currentTransaction.getDescription(), currentTransaction.getDate().toString()};
	}

	JTable table = new JTable(data, columnNames);
}

}

 

Jeg får en syntax error på "data[row] = {currentTransaction.getAmount(), currentTransaction.getDescription(), currentTransaction.getDate().toString()};" --> "Array constants can only be used in initializers"

 

Hva betyr dette? Og hvordan kan jeg riktig legge inn data i arrayet?

 

På forhånd takk :)

Endret av Tharzul
Lenke til kommentar
Videoannonse
Annonse

Du burde begynne med å initialisere data-objektet med noe slikt:

Object[][] data = new Object[account.getTransactions().size()][3];

Tror også det ville vært mer hensiktsmessig å fylle tabellen med nå slikt:

 

 

for(int row = 0; row < 5; row++) {
	   Transaction currentTransaction = (Transaction)account.getTransactions().get(row);
	        data[row][0] = currentTransaction.getAmount();
	        data[row][1] = currentTransaction.getDescription();
	        data[row][2] = currentTransaction.getDate();
   }

 

 

Hvis ikke prøv med et bedre eksempel som ikke krever Account og de andre klassene. Eventuelt minimer koden og legg de ved.

Lenke til kommentar
Gjest Slettet+1374861

Den feilmeldingen du får...

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

Array constants can only be used in initializers

...Er jo i enkelte tilfeller upraktisk fordi man da kan stå ovenfor ett tilfelle der man eksplisitt må navngi hver eneste celle.

 

Eksempel på hvordan fremprovosere feilmeldingen:

		int[] tall = null;
	tall = {1,2,3};

 

I tilfellet over er det noe ulogisk (vel.. egentlig ikke, men okay) å få denne feilmeldingen, siden en instans ikke allerede fins og dermed bør jo den første bruken av array constants burde funke.

 

Uansett, en kan overgå dette i slike tilfeller ved å lage en ny instans som her:

		int[] tall = null;
	tall = new int[]{1,2,3};

Endret av Slettet+1374861
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...