Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    [Java] disegnare quadrati colorati

    codice:
      if (dist > D1){ pannello.getGraphics().setColor(new Color(0, 0, 155));  }
      else   if (dist < D1 && dist > D2) {  pannello.getGraphics().setColor(new Color(155, 0, 0)); }
             else{  pannello.getGraphics().setColor(new Color(0, 155, 0));  }
             pannello.getGraphics().setColor(new Color(100,100,100));
     pannello.getGraphics().drawRect(x-2,y-2,4,4);
    ho la classe ascoltatore (questa sopra) che dovrebbe disegnare dei quadrati di diverso colore. Il colore dipende dalla distanza dal centro. solo che nn funziona. disegna sempre nero!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Ricopio il tuo codice, indentandolo correttamente:
    codice:
    if (dist > D1) {
       pannello.getGraphics().setColor(new Color(0, 0, 155));
    } else if (dist < D1 && dist > D2) { 
       pannello.getGraphics().setColor(new Color(155, 0, 0));
    } else {
       pannello.getGraphics().setColor(new Color(0, 155, 0));
    }
    pannello.getGraphics().setColor(new Color(100,100,100));
    pannello.getGraphics().drawRect(x-2,y-2,4,4);
    Se noti... qualsiasi sia il colore che tu assegni al Graphics all'interno dei blocchi if, questo viene resettato a RGB=100, 100, 100 (un grigio), appena prima di disegnare il quadrato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    si mi son dimenticato di toglierlo sta di fatto che disegna sempre nero cmq..

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non sapendo cosa siano dist, D1 e D2 posso solo supporre che che le condizioni vengano verificate di volta in volta.
    Quindi, prova a procedere così:
    codice:
    Graphics g = pannello.getGraphics();
    
    if (dist > D1) {
       g.setColor(new Color(0, 0, 155));
    } else if (dist < D1 && dist > D2) { 
       g.setColor(new Color(155, 0, 0));
    } else {
       g.setColor(new Color(0, 155, 0));
    }
    g.drawRect(x-2,y-2,4,4);
    Non dovrebbe cambiare niente in quanto sono sempre dei riferimenti, ma tentar non nuoce.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da LeleFT
    Non sapendo cosa siano dist, D1 e D2 posso solo supporre che che le condizioni vengano verificate di volta in volta.
    Quindi, prova a procedere così:
    codice:
    Graphics g = pannello.getGraphics();
    
    if (dist > D1) {
       g.setColor(new Color(0, 0, 155));
    } else if (dist < D1 && dist > D2) { 
       g.setColor(new Color(155, 0, 0));
    } else {
       g.setColor(new Color(0, 155, 0));
    }
    g.drawRect(x-2,y-2,4,4);
    Non dovrebbe cambiare niente in quanto sono sempre dei riferimenti, ma tentar non nuoce.


    Ciao.
    ottimo così va!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.