Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 15:50 Der er 24 kommentarer og
2 løsninger

Java: Fjerne border om rektangel

Dette spørgsmål er til mikkelbm.
Hvordan fjerner jeg den grønne og røde border om rektanglen?
Avatar billede simonvalter Praktikant
03. september 2005 - 16:07 #1
Hvis det er koden fra
http://www.eksperten.dk/spm/645089

private void paintRectangles(Graphics g)
    {       
        for (int i = 0; i<rectangles.size(); i++)
        {
            MyRectangle rec = (MyRectangle)rectangles.get(i);
            Color col = rec.getIsClicked() ? Color.red : Color.green;
            g.setColor(col);
            g.drawRect(rec.x, rec.y, rec.width, rec.height);
        }
    }
 
så fjern

Color col = rec.getIsClicked() ? Color.red : Color.green;
g.setColor(col);
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 16:10 #2
Så bliver de sorte :)
Avatar billede mikkelbm Nybegynder
03. september 2005 - 16:11 #3
Hvordan vil du ha' dem til at se ud?
Avatar billede simonvalter Praktikant
03. september 2005 - 16:26 #4
brug
g.clearRect(rec.x, rec.y, rec.width, rec.height);
istedet for
//  g.drawRect(rec.x, rec.y, rec.width, rec.height);
hvis den skal passe ind i baggrunden.

og
Color col = Color.BLUE;
g.setColor(col);
for en bestemt farve
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:00 #5
Hvis det er fordi du vil ha' den fjernet, så bare fjern den fra ArrayList'en. Så ser du den ikke mere.
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 17:02 #6
De skal stadig være der, man skal bare ikke kunne se dem ;)!
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:04 #7
Så gør som Simon skriver.
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:05 #8
private void paintRectangles(Graphics g)
    {       
        for (int i = 0; i<rectangles.size(); i++)
        {
            MyRectangle rec = (MyRectangle)rectangles.get(i);
            if (rec.getIsClicked())
                g.clearRect(rec.x, rec.y, rec.width, rec.height);
            else
                g.drawRect(rec.x, rec.y, rec.width, rec.height);
        }
    }
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 17:05 #9
Så der ingen border, men hvid baggrund bag dem ;)?
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:07 #10
Heh.. Måske det nemmeste bare er at springe dem over:

private void paintRectangles(Graphics g)
    {       
        for (int i = 0; i<rectangles.size(); i++)
        {
            MyRectangle rec = (MyRectangle)rectangles.get(i);
            if (!rec.getIsClicked())
                g.drawRect(rec.x, rec.y, rec.width, rec.height);
        }
    }
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 17:09 #11
Hehe, så går det helt agurk.
Nu viser den sorte border + fjerner dem når man har rykket.. underligt
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:11 #12
Du skal stadig selv styrer farverne... Hvilken farve vil du ha'?
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:12 #13
for (int i = 0; i<rectangles.size(); i++)
{
    MyRectangle rec = (MyRectangle)rectangles.get(i);
    g.setColor (Color.red); // <-- her sætter du den farve du vil ha'.
    if (!rec.getIsClicked())
        g.drawRect(rec.x, rec.y, rec.width, rec.height);
}
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:12 #14
Og skulle de ikke også fjernes, når man havde trykket?
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 17:35 #15
Man skal slet ikke kunne se rektanglerne de skal være usynlige, mens de stadig er der
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:38 #16
Det er vel også det der sker?
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:39 #17
De ligger stadig i listen, men bliver ikke tegnet. --> Usynlig
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 17:40 #18
Ja, nu bliver de usynlige når man har trykket på et felt.
Men alle skal ikke kunne ses.
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:47 #19
Når man trykker på én skal alle fjernes(gøres usynlige) ??
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 17:57 #20
Nej, ligeså snart man ser appletn skal man slet ikke kunne se nogle rektangler.
Men de skal stadig være bygget på det system hvor man kun kan klikke inde for det område
Avatar billede mikkelbm Nybegynder
03. september 2005 - 17:58 #21
Jeg har tabt tråden!

Har du selv forsøgt at få det lavet som du gerne vil ha' det?
Avatar billede 1nz4n3 Nybegynder
03. september 2005 - 18:11 #22
Du har jo lavet det system hvor man kun kan klikke indefor en rektangel.
Men så er der en border uden på dem som ikke ser pænt ud.

Den skal fjernes sådan man IKKE kan se nogle rektangler.
Avatar billede mikkelbm Nybegynder
03. september 2005 - 18:15 #23
Og man skal aldrig kunne se nogle rektangler?

Hvis ja, så skal du bare lade vær med at kalde 'paintRectangles' - simpelthen bare fjerne den linje.
Avatar billede mikkelbm Nybegynder
03. september 2005 - 18:16 #24
Det fik jeg vist lidt dårligt formuleret :)

Det jeg mener er, at hvis man aldrig skal kunne se de firkanter, så skal du bare undlade at tegne dem - ved at fjerne metodekaldet til paintRectangles.
Avatar billede mikkelbm Nybegynder
20. september 2005 - 22:59 #25
Lukketid ?
Avatar billede 1nz4n3 Nybegynder
29. september 2005 - 21:44 #26
oka
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