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.
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).
Jep...pistin nuo weightx:n ja y:n niin ei auttanut, mutta vielä kun pisti ton .fill = .BOTH niin, johan alkoi pelittää...suuret kiitokset!!
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().
Aihe on jo aika vanha, joten et voi enää vastata siihen.