Zdravím,
mám problém s tím, že mám metodu s grafikou, ale chci jí vyvolat v jiné třídě než je.. Pochopitelně to po mě chce argument pro "Graphics g".. A tady je můj problém, co tam mám napsat aby to fungovalo??
Děkuju, Lukáš M.
Zdravím,
mám problém s tím, že mám metodu s grafikou, ale chci jí vyvolat v jiné třídě než je.. Pochopitelně to po mě chce argument pro "Graphics g".. A tady je můj problém, co tam mám napsat aby to fungovalo??
Děkuju, Lukáš M.
#1 Lukáš M.
Ahoj,
uz sem dlouho SWING nedelal.. takze si presne nepamatuju jak se ma spravne kreslit.. ale tvoje reseni s kreslenim v jiny tride by mohlo vypadat treba takhle:
Komponenta na kterou se ma kreslit:
import java.awt.Graphics;
import javax.swing.JComponent;
public class MyComponent extends JComponent {
private PaintComponentCallback paintCallback;
public MyComponent(PaintComponentCallback paintCallback) {
this.paintCallback = paintCallback;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
paintCallback.paintComponentCallback(g);
}
}
Callback pro delegaci kresleni:
import java.awt.Graphics;
public interface PaintComponentCallback {
public void paintComponentCallback(Graphics g);
}
Kresleni v externi tride:
import java.awt.Graphics;
public class CustomDrawing implements PaintComponentCallback {
@Override
public void paintComponentCallback(Graphics g) {
//sem hod svoje omalovanky :)
}
}
to rozhrani by si klidne moh vynechat a ve tride MyComponent si misto toho drzet rovnou referenci na CustomDrawing.
Příště, prosím, označit za vyřešené, díky! :-)
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku