Avatar billede di8leva Nybegynder
21. november 2002 - 08:53 Der er 6 kommentarer og
1 løsning

setBackground(Color color) virker ikke

Jag har en JPanel i en JTabbedPane og på den JPanel har jag en JLabel.

Nær jag bruger:
        jLabel.setBackground(Color.red);
        jLabel.setForeground(Color.yellow);

så blir kun text-farven ændrad, og det ær samma sag hvis jag gør det på jPanel. Bakgrunden er alltid java:s standard-grå.

Jag bruger Look-And-Feel med system default og har en windows-maskin.

Hvis man bruger Look-And-Feel skall man væl stadvek kunna sætta de farver man vill på en komponent?
Avatar billede carstenknudsen Nybegynder
21. november 2002 - 10:04 #1
Som default er alle JComponents gennemsigtige (deres baggrund),
og JLabel nedarver fra JComponent. Du kan ændre en JLabels
gennemsigtighed med setOpaque(true).
Avatar billede di8leva Nybegynder
21. november 2002 - 10:47 #2
ok.
hvis jag setOpaque(true) kan den JLabel få korrekt bakgrund, men det virker ikke på JPanel, den er stadvek grå... =(

og egentligen er det ikke hele problemet, problemet startade då jag førsøkte ændra cursor till Cursor.WAIT_CURSOR, det virker bara ikke någonstans. det var då jag førsøgte med farver och det virkede då ikke heller. Jag tror att nær farverna virker så virker cursors =)
Avatar billede carstenknudsen Nybegynder
21. november 2002 - 11:20 #3
Grunden til at du ikke kan se noget med dit JPanel er at
et JPanel ofte er helt fyldt ud med komponenter (labels
og knapper etc). Derfor er der ingen baggrund synlig for
dit JPanel. Hvis du eksplicit sætter størrelse af dit
JPanel til at være for stor, så vil du se baggrundsfarven.
Avatar billede carstenknudsen Nybegynder
21. november 2002 - 11:51 #4
Når du arbejder med cursor skal du gøre
det sådan her, og setCursor skal kaldes
på den rette komponent ellers kan du ikke
se cursoren:
Cursor oldCursor = getCursor();
setCursor( new Cursor( Cursor.WAIT_CURSOR ) );
// her foregår der en længere beregning
setCursor( oldCursor );
Avatar billede di8leva Nybegynder
21. november 2002 - 13:13 #5
jag er sikker på att min JPanel ikke er totalt udfyllet og det virker ikke.

jag har gjort precis som i ditt ekspempel med min cursor, men det virker ikke heller =(. Jag har æven testat att sætta cursor på ALLE komponenter på den JPanel, på JPanel og på den JTabbedPane som holder JPanel, men det virker kun 20% av gångerna, de andra hænder inget.

og jag vet att min applet (ja det er en applet jag brokker med) blir repaint:ad førdi jag sætter en del komponenter till setEditable(false) og det kan man godt se...
Avatar billede carstenknudsen Nybegynder
21. november 2002 - 13:36 #6
Det undrer mig meget hvis ikke det virker. Prøv denne her
kode, hvor du skulle kunne se den gule baggrund fra JPanel'et.
JFrame f = new JFrame();
Container c = f.getContentPane();
JPanel p = new JPanel();
JLabel l = new JLabel("12345");
l.setOpaque(true);
l.setForeground(Color.blue);
l.setBackground(Color.red);
p.add(l);
p.setSize(100,100);
p.setOpaque(true);
p.setBackground(Color.yellow);
c.add(p);
f.setSize(300,300);
f.show();
Ang. din cursor så er det dels vigtigt at der er et tidsinterval
hvor den er skiftet så man kan nå at se den.
Det burde også virke, jeg bruger mange steder den kode jeg
har vist dig ovenfor, men hvis cursoren bevæger sig ind
over en anden komponent kan man se den cursor der hører dertil.
Prøv først ovennævnte kode og fortæl mig om det virker hos dig.
Avatar billede di8leva Nybegynder
25. november 2002 - 09:32 #7
carsten >> tak før dina førsøg, det virker dock ikke ænnu.
Din kod virker, men ikke min. Jag har tagit bort cursor och bruger bara setEnabled(false) på komponenter just nu, og senare nær jag får tid skall jag titta på problemet igen.
Då kanske det kommer upp på eksperten igen =)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester