NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

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

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Ondrca
Tvůrce
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
Tvůrce
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
Tvůrce
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
Tvůrce
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
Tvůrce
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
Odpovídá na Ondrca
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Hartrik
Tvůrce
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
22.8.2013 16:12
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
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
Tvůrce
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.