Diskuze: Problém s volání metody public void kreslit(Grphics g)

Java Java Problém s volání metody public void kreslit(Grphics g)

Avatar
Ondrca
Redaktor
Avatar
Ondrca:

Ahoj mám následující problém:
Mám třídu akce a v ní více metod mezi něma je i metoda

public void kreslit(Graphics g)

ostatní metody mi jdou volat:
např:

public void kreslit(Graphics g) {
Image osmcihel = Toolkit.getDefaultToolkit().getImage("image.jpg");
Graphics2D g2 = (Graphics2D) g;
    g2.drawImage(img1, 10, 10, poz);//poz je JPanel
  }
public void metoda(){
System.out.println("Byla ůspěšně zavolána metoda metoda()")
}
akce action = new akce();
akce.metoda();
akce.krelit();//zde NetBeans hlásí chybu

Prosím poraďte.
//Už jsem zkoušel všejaké sttánky, ale ani podle nich mi to nefungovalo :(.

Odpovědět 22.8.2013 15:50
Zase jsem o něco chytřejší
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Ondrca
Hartrik:

Jednak tam máš krelit místo kreslit a taky té metodě nepředáváš instanci třídy Graphics.

Editováno 22.8.2013 15:57
 
Nahoru Odpovědět 22.8.2013 15:56
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Hartrik
Ondrca:

To krelit je jenom překliknutí a poradíš mi prosím jak přidat instanci Graphics?
Díky

Editováno 22.8.2013 16:00
Nahoru Odpovědět 22.8.2013 15:57
Zase jsem o něco chytřejší
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Ondrca
Hartrik:

Musíš ji získat z objektu, do kterého se snažíš kreslit a poslat ji jako parametr při volání metody.

 
Nahoru Odpovědět 22.8.2013 16:04
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Hartrik
Ondrca:

takže:

poz.getGraphics();

?
Ale nevím jak ji poslat.

Nahoru Odpovědět 22.8.2013 16:06
Zase jsem o něco chytřejší
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Ondrca
Jiří Gracík:

A nezaložil jsi snad objekt action? Neměl bys tedy volad action.Metoda a action.Kreslit?

Nahoru Odpovědět 22.8.2013 16:09
Creating websites is awesome till you see the result in another browser ...
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Ondrca
Hartrik:

Tak třeba

akce.kreslit(poz.getGraphics());

Ale jestli je poz nějaký panel, tak budeš potřebovat přepsat metodu paint, nebo paintComponents. Už se to tu řešilo několikrát, třeba naposledy http://www.itnetwork.cz/…2015d18bd725

 
Nahoru Odpovědět  +1 22.8.2013 16:12
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Jiří Gracík
Ondrca:

Omlouvám se, ale i když tam bylo action tak to nefungovalo.

Nahoru Odpovědět 22.8.2013 19:41
Zase jsem o něco chytřejší
Avatar
Ondrca
Redaktor
Avatar
Nahoru Odpovědět 22.8.2013 19:41
Zase jsem o něco chytřejší
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.