Jeg har en tabel hvor det er muligt at navigere rundt med piletaster, hvor cellerne bliver blå når man står på dem. Dette er selvfølgelig lavet via getTableCellRendererComponent, hvor jeg sætter bagrunden blå på den selekterede celle Men nu har jeg lavet mulighed for comboboxe i tabellen. og istedet for at det kun er liste-delen/editoren der er makeret blå. vil jeg gerne have det er hele cellen. Det er her min uvidenhed kommer ind i billedet Jeg har prøvet via paint på min combobox, hvor jeg bruger fill rect det virker fint men så kan jeg ikke se indholdet.
Hvordan gør man, er der en helt anden måde at gøre det på. Eller er det muligt via Graphics2D
Jeg er ikke sikker på at jeg forstår spørgsmålet, men mig bekendt fylder combobox'en hele cellen ud, så combobox.setBackground() burde jo være løsningen
setBackground() sætter rigtignok farve på liste delen af comboboxen men jeg vil have hele cellen farvet, incl. dropdown knappen man kan få effekten frem ved at man i paint laver en setXorMode(Color) før en drawrect. Det vil give den rigtige effekt, men man kan ikke styrer farverne.
Det er en JComboBox ideen er at hele cellen skal farves, også knappen så når man bevæger sig rundt i tabellen er hele cellen markeret, på samme måde som når der en et textfelt. Det er sådan at man kan bevæge sig rundt med pile tasterne i tabellen, hvis man trykker på en celle eller skriver i den, går men i edit mode og kan ikke længere flytte sig rundt med pile taster, men kan bruge tab til at navigere rundt, lige som i alm. felter Derfor skal hele cellen markeres så man tydeligt kan se at man ikke vælge noget ved at trykke pil ned. Håber det er forståligt !
desværre det er ikke navigeringen med pile tasterne der er et problem, det er det styr på det er farven. Jeg vil have farvet cellen blå, hele cellen denne paint metoder viser hvordan det skal se ud. men man kan ikke se indholdet med setXor metoden kan man se indholdet men ikke styre farven. så jeg mangler en anden måde at gøre det på.
Jeg spørg nok dumt endnu engang, hvor overrider du paint ??, i JComboBox ??
Nedenstående styrer cellefarven
if(isSelected){ // Hvis række er valgt if (hasFocus) { // Hvis celle har focus setBackground( Color.blue); } else { setBackground( Color.white); } } else{ setBackground( Color.green); }
Min paint er i min combobox som extender JCombobox
det med cellefarverne virker vel ikke når der er en anden editor i cellen Hver kolonne har sin egen editor som i tableRendereren får sat sin værdi farve mm.
så en setBackground har ikke nogen effekt som jeg ser det.
jeg tror jeg kan styre det lidt bedre med ((Graphics2D)g).setComposite(AlphaComposite.getInstance(aphaComposite.SRC_OVER,0.5f)); i min comboBox paint men har ikke samme effekt swap effekt som setbackground(blue) og set forground(white)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.