Tharzul Skrevet 8. februar 2008 Del Skrevet 8. februar 2008 (endret) 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 8. februar 2008 av Tharzul Lenke til kommentar
sberg43 Skrevet 8. februar 2008 Del Skrevet 8. februar 2008 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
Tharzul Skrevet 8. februar 2008 Forfatter Del Skrevet 8. februar 2008 Takk takk! Det funka fint på måten du gjorde det. Lenke til kommentar
Gjest Slettet+1374861 Skrevet 8. februar 2008 Del Skrevet 8. februar 2008 (endret) 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 8. februar 2008 av Slettet+1374861 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå