Avatar billede djmaster Nybegynder
14. februar 2008 - 11:35 Der er 12 kommentarer og
1 løsning

Fjerne farve fra knap

Hejsa

Jeg har en knap som bliver rød engang imellem.

x = new Jbutton;
x.setBackground(Color.red);

Men jeg vil gerne kunne fjerne den røde farve igen, hvordan gør man det, så knappen får dens default'e farve igen.

altså nogen i denne stil
x.setBackground(Color.default);
Avatar billede w13 Novice
14. februar 2008 - 11:39 #1
Jeg mener, du kan bruge removeBackground.
Er dog ikke så meget inde i Java, så muligvis er det en løgn. =)
Avatar billede djmaster Nybegynder
14. februar 2008 - 11:44 #2
Metoden er ikke erklæret for JButtons, så du løj desværre ;)
Avatar billede w13 Novice
14. februar 2008 - 11:53 #3
Damn! =)
Avatar billede jakoba Nybegynder
14. februar 2008 - 15:12 #4
Jbutton er en extension of klassen Component som har en getBackground metode. Så det vil vel blive noget i retning af

x = new Jbutton;
...
Color husketBaggrundsFarve = x.getBackground();
x.setBackground( Color.red );
...
x.setBackground( husketBaggrundsFarve );

mvh JakobA
Avatar billede djmaster Nybegynder
14. februar 2008 - 16:21 #5
Det har jeg prøvet, og burde nok også have skrevet det. Det virker ikke (efter hensigten)

Grunden til at jeg gerne vil have den originale knap farve tilbage, er fordi, det er som om der er skygge på den. Med din metode bliver knappen bare ensfarvet
Avatar billede jakoba Nybegynder
14. februar 2008 - 21:04 #6
Hum. Så default er ikke bare en farve, men et billede ? Det lyder ulogisk eftersom der (såvidt jeg kan se) ikke er nogen måde at gette eller sette et billede som baggrund.
Avatar billede jakoba Nybegynder
14. februar 2008 - 21:16 #7
Joe måske. Har du prøvet at lege med:

Graphics husketGraphics = x.getGraphics()
og
x.paint( husketGraphics );
eller
x.update( husketGraphics );

men jeg gætter nu. Har aldrig leget med swing
Avatar billede _carsten Nybegynder
18. februar 2008 - 18:10 #8
Du gør det på følgende måde:

Color defaultBackground = (Color) UIManager.get("Button.background");
Avatar billede djmaster Nybegynder
19. februar 2008 - 11:40 #9
_carsten: Tak det virker :)

jakoba: Jeg får en fejl med din kode: Fejl "Cannot refer to a non-final variable husketGraphics inside an inner class defined in a different
method"

Nogenlunde sådan har jeg puttet koden ind:
        Graphics husketGraphics = FallButton.getGraphics();
       
        FallButton.addActionListener(
            new ActionListener()
            {
                public void actionPerformed( ActionEvent event )
                {
                    FallButton.paint( husketGraphics );
}
Avatar billede djmaster Nybegynder
19. februar 2008 - 11:40 #10
Men smid bare begge et svar, så lægger jeg lige 15point oveni
Avatar billede _carsten Nybegynder
19. februar 2008 - 12:09 #11
Du kan i øvrigt ændre baggrund på ALLE knapper i din app ved

UIManager.put("Button.background", new Color(100,100,100))

Men husk - det gælder alle knapper.
Avatar billede jakoba Nybegynder
20. februar 2008 - 16:06 #12
Nej tak. Det var jo Carstens der duede :-)
Avatar billede djmaster Nybegynder
20. februar 2008 - 22:54 #13
Ok, så lukker jeg bare :)
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