Newsgroup: it.comp.java
Titolo: AWT, pannelli, canvas & Bordi

Ciao a tutti,
ho un problema con i pannelli ed i canvas ....
1- è possibile creare un pannello con una dimensione fissata (cioè di
poco più grande del canvas che gli verrà aggiunto sopra?)
2- oppure è possibile aggiungere un bordo ad un canvas?
In poche parole quello che devo fare (senza usare le swing) è creare un
pannellino da cui si possono selezionare i colori (ho aggiunto al
pannello tanti canvas quanti sono i colori e ho settato ad ognuno uno
sfondo diverso), ma purtroppo quando il colore da selezionare è uguale
al colore di sfondo non si vede!
Scusate se sono stata un po' contorta nelle spiegazioni, spero che
qualcuno riesca a capire e mi possa aiutare
Grazie
Alex

 wrote in
message 39CB7ACC...@ginevra.labic.disco.unimib.it...


Ciao frolix8,
volevo ringraziarti per la tua risosta... però ho ancora alcuni dubbi (dato che
non sono un'esperta programmatrice Java, probabilmente saranno banali) ...
Io ho creato questa classe:
class DisegnaRettangoli extends Panel {
      Panel p;               // pannello di sfondo che contiene tutti i
rettangolini
      Vector Elenco = new Vector(); // questo vettore contiene tutti i colori
                                                      (ottenuto da  una query
su un DB)
      DisegnaRettangoli (Panel p, Vector Elenco) {
                 this.p=p;
                 this.Elenco=Elenco;
      }// end costruttore
      public void paint (Graphics g) {
              for (int i=0; i<Elenco.size(); i++) {
              g.setColor(new Color
(((OggCol)Elenco.elementAt(i)).getR(),((OggCol)Elenco.elementAt(i)).getG(),((OggCol)Elenco.elementAt(i)).getB()));
              g.fill3DRect(i,i,1,1,true);
              g.setColor(new Color(0,0,0));
              g.drawRect(i,i,1,1);
    }// end for
   }//end paint
}// end classe DisegnaRettangoli
Però non so come posso aggiungere ogni rettangolino al pannello p e sopratutto
come posso aggiungere ad ognuno di essi il MouseListener ...
Ti ringrazio ancora
Alex


anch'io non sono un esperto, infatti del vector che hai postato ci ho capito
poco.
comunque ho adattato una vecchia prova al tuo caso.
provala un po, cliccando sui quadratini sul quadrato di destra dovrebbe
apparire il colore scelto.
ciao
frolix8
import java.awt.*;
import java.awt.event.*;
public class pannello extends Frame  {
static panel pan;
public static void main(String args[])
         {
         Frame pippo = new pannello();
         pan=new panel();
         pippo.setTitle("Pannello di colori");
         pippo.setSize(350,200);
         pippo.setVisible(true);
         pippo.addWindowListener(new  WindowAdapter() {
              public void windowClosing(WindowEvent e) {
               System.exit(0);
                  }
                 });
     }
         public pannello()
                {
                setLayout(null);
                pan=new panel();
                pan.setBounds(0,100,350,200);
                add(pan);
                }
public void paint(Graphics g)
         {
         g.drawString("Prova",50,50);
         }
}
class panel extends Panel implements MouseListener {
Panel zzz;
      panel()
           {
           setLayout(null);
           setBackground(Color.lightGray);
           zzz=new Panel();
           zzz.setBackground(Color.black);
           zzz.setBounds(300,0,50,100);
           add(zzz);
           addMouseListener(this);
           }
      public void paint(Graphics g)
              {
              g.setColor(Color.red);
              g.fillRect(30,30,30,30);
              g.setColor(Color.black);
              g.drawRect(30,30,30,30);
              g.setColor(Color.blue);
              g.fillRect(90,30,30,30);
              g.setColor(Color.black);
              g.drawRect(90,30,30,30);
              g.setColor(Color.green);
              g.fillRect(150,30,30,30);
              g.setColor(Color.black);
              g.drawRect(150,30,30,30);
              }
public void mousePressed( MouseEvent e )
     {}
public void mouseReleased( MouseEvent e )
     { }
public void mouseExited( MouseEvent e )
     {}
public void mouseEntered( MouseEvent e )
     { }
public void mouseClicked( MouseEvent e )
     {
     if (e.getX() >= 30 && e.getX() <= 60 && e.getY() >= 30 && e.getY() <=
60) zzz.setBackground(Color.red);
     if (e.getX() >= 90 && e.getX() <= 120 && e.getY() >= 30 && e.getY() <=
60) zzz.setBackground(Color.blue);
     if (e.getX() >= 150 && e.getX() <= 180 && e.getY() >= 30 && e.getY() <=
60) zzz.setBackground(Color.green);
     }
}