remi sture Skrevet 25. oktober 2005 Del Skrevet 25. oktober 2005 Halla! Jeg har en JTable, som igjen inneholder en DefaultTableModel med dataene som skal vises. Hver rad her inneholder fire kolonner, og spørsmålet mitt er om det er mulig å la bare 3 av dem være mulig å skrive i. Altså at én av kolonnene er låst liksom. Lenke til kommentar
Mr.Garibaldi Skrevet 25. oktober 2005 Del Skrevet 25. oktober 2005 (endret) Du kan nekte en kolonne bli valgt, som igjen skulle gjøre det umulig å editere den... Da bruker du setColumnSelectionAllowed()... Ellers kan du bruke setEnabled() til å "skru av" kolonnen, slik at brukere ikke kan gjøre noe med den. Endret 25. oktober 2005 av Mr.Garibaldi Lenke til kommentar
remi sture Skrevet 25. oktober 2005 Forfatter Del Skrevet 25. oktober 2005 Hvis jeg bruker setColumnSelectionAllowed, hvordan kan jeg da velge ønsket kolonne i ønsket rad? Lenke til kommentar
remi sture Skrevet 25. oktober 2005 Forfatter Del Skrevet 25. oktober 2005 Og hvordan gjøre alle andre rader enn den som er markert når jeg klikker på en knapp, disabled? Lenke til kommentar
Mr.Garibaldi Skrevet 25. oktober 2005 Del Skrevet 25. oktober 2005 Hva er det du egentlig er på jakt etter? Forstår ikke helt... Du må beskrive litt nærmere hva du forsøker å gjøre hvis jeg skal hjelpe deg... (Leter selv i APIen...) Lenke til kommentar
remi sture Skrevet 25. oktober 2005 Forfatter Del Skrevet 25. oktober 2005 Hvis jeg bruker setColumnSelectionAllowed, hvordan kan jeg da velge ønsket kolonne i ønsket rad? 5058441[/snapback] Altså, hvordan velger jeg den kolonnen jeg vil sette setColumnSelectionAllowed(false) på?Og hvordan gjøre alle andre rader enn den som er markert når jeg klikker på en knapp, disabled? 5058889[/snapback] Dette er altså et nytt spørsmål, og har ingenting med det forrige å gjøre. Hvis jeg merker en rad, og klikker på en knapp, skal kun denne raden være mulig å endre. Altså sette setRowSelectionAllowed(false) på alle andre rader enn den som er merket. Lenke til kommentar
Iyon Skrevet 26. oktober 2005 Del Skrevet 26. oktober 2005 Titt i api'et på SelectionModel-objektklassen for den komponenten du snakker om, SelectionModels er kjekke verktøy... Lenke til kommentar
remi sture Skrevet 26. oktober 2005 Forfatter Del Skrevet 26. oktober 2005 Jeg fant ikke ut noe mer jeg. Har du noen konkrete tips å komme med? Lenke til kommentar
codo Skrevet 26. oktober 2005 Del Skrevet 26. oktober 2005 (endret) Kan prøve dette. Burde være et greit utgangspunkt. final DefaultTableModel model = new DefaultTableModel(data, headers) public boolean isCellEditable(int row, int column) { if(column == 3) { return true; } else { return false; } } }; final JTable table = new JTable(model) { ... } Endret 26. oktober 2005 av codo Lenke til kommentar
remi sture Skrevet 26. oktober 2005 Forfatter Del Skrevet 26. oktober 2005 Takk for den, codo, men jeg skjønner egentlig ikke hvordan jeg kan bruke den... Lenke til kommentar
codo Skrevet 27. oktober 2005 Del Skrevet 27. oktober 2005 Takk for den, codo, men jeg skjønner egentlig ikke hvordan jeg kan bruke den... 5064353[/snapback] Forstod deg sånn at du hadde en JTable med en DefaultTableModel... Det koden min gjør et å overloade isCellEditable i DefaultTableModel slik at denne funksjonen benyttes istedenfor den i DefaultTableModel. Logikken er at isCellEditable vil returnere false hvis du forsøker å endre på dataen i kollone 4 (går fra 0 til 3 om du har 4 kolloner), ellers true. Her kan du selvfølgelig legge til andre if-else statements. 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å