Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Canvas GridBagLayoutissa (Java)

Norrit [20.12.2004 14:15:49]

#

class W_Graph extends Canvas
{
   W_Graph()
    {

    }

    public void paint(Graphics g)
    {
        this.setBackground(Color.PINK);  //testing väri
        g.setColor(Color.RED);
        g.fillRect(20,  250, 15,  100);
        g.setColor(Color.BLUE);
        g.fillRect(50,  290, 15,  60);
        g.setColor(Color.GREEN);
        g.fillRect(80,  190, 15,  160);
        g.setColor(Color.CYAN);
        g.fillRect(110,  220, 15,  130);

    }

Minkäköhän takia gridbaglayoutilla en saa tätä canvas-luokkaa näkyviin? Jos muutan layoutin gridlayoutiksi, niin tuo näkyy ihan hyvin. Jotain jo googletin ja vanhaa awt-opastakin lueskelin, mutta en löytänyt ratkaisua.

FooBat [20.12.2004 17:11:43]

#

Kokeiles asettaa GridBagConstrains luokan weightx ja weighty johonkin muuhun arvoon kuin 0 ja anna vaikka saman luokan fill kentälle arvo BOTH. Jos ei toimi, tarkista, että et aseta komponentteja päällekkäin (GBC luokan x ja y kentät).

Norrit [20.12.2004 20:38:00]

#

Jep...pistin nuo weightx:n ja y:n niin ei auttanut, mutta vielä kun pisti ton .fill = .BOTH niin, johan alkoi pelittää...suuret kiitokset!!

FooBat [21.12.2004 03:34:49]

#

Perussyy tuohon on muuten kuitenkin se, että et aseta Canvas-komponentille kokoa, jolloin oletuskoko taitaa olla 0 ja ellei layoutille sanota, että komponenttia pitää alkaa venyttelemään ei se tule ollenkaan näkyviin. Component.setSize().

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta