Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Piirtäminen luokasta toiseen

jonez [19.03.2006 19:21:18]

#

Eli haluaisin piirtää toisesta luokasta pääluokkaan, miten tämä onnistuu?

edit: Siis javalla, javalla. :)

maka78 [20.03.2006 07:53:32]

#

No välität sille toiselle luokalle pääluokan piirtopinnan tai koko pääluokan.

panttu [20.03.2006 20:33:04]

#

Tai teet pää luokkaan staattisen metodin, joka lisää piirto olio listaan uusia piirto olioita, jotka sitten piirretään paint metodissa. Suositeltavampaa on kuitenkin toimia kuten maka78 neuvoi.

jlundan [16.04.2006 21:08:29]

#

Ylläoleviin vastauksiin hieman lisäystä/tarkennusta:
Eli kerro pääluokan paint metodille mitä kaikkea sen haluat piirtävän. Oletetaan että käytät swingiä ja haluat pääluokan piirtävän viivan, kuitenkin haluat jossain muussa luokassa päättää millainen tuo viiva on.

Swingissä/AWT:ssä piirtäminen tapahtuu ylikirjoittamalla java.awt.Component:issa alunperin määritelty

public void paint(Graphics g)

metodi. Jotta piirtäminen olisi mahdollisimman tehokasta, tämän metodin tulisi tehdä kaikki piirtäminen. Sieltä toisesta luokasta pitäisi siis kertoa pääluokalle mitä sen paint metodin pitäisi piirtää. Esimerkiksi:

class ToinenLuokka{
 public ToinenLuokka(Paaluokka parent){
   parent.requestLineDraw(new Point(0,0), new Point(10,10));
 }

class Paaluokka ...{
  private Point p1 = null;
  private Point p2 = null;
  ...
  public void requestLineDraw(Point start, Point end){
    this.p1 = start;
    this.p2 = end;
  }
  public void paint(Graphics g){
    ...
    g.drawLine(p1.x, p1.y, p2.x, p2.y);
    ...
  }
...
}

Esimerkissä on paljon ... kohtia jotka sinun täytyy itse täyttää siten että applikaatiosi toimii. Ideana oli esitellä vain se piirtomekanismi. Tarkempaa infoa piirtämisestä saat osoitteesta:

http://java.sun.com/products/jfc/tsc/articles/painting/index.html

Toivottavasti auttaa. =)

J

Vastaus

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

Tietoa sivustosta