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)

Aktivity (1)
Avatar
Ondrca
Redaktor
Avatar
Ondrca:22.8.2013 15:50

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:22.8.2013 15:56

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:22.8.2013 15:57

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:22.8.2013 16:04

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:22.8.2013 16:06

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:22.8.2013 16:09

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:22.8.2013 16:12

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:22.8.2013 19:41

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
Odpovídá na Hartrik
Ondrca:22.8.2013 19:41

Díky moc.

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.