Je sais que c'est mal rédigé, mais je ne sais pas comment le dire mieux. Essentiellement j'ai mon propre JComponent MyComponent
et il peint quelques trucs sur ses graphiques. Je veux peindre son truc, puis appeler une méthode pour terminer la peinture, voici un exemple:Comment puis-je laisser une classe ajouter à ma fonction de peinture?
public class MyComponent extends JComponent{
// etc
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g2 = (Graphics2D)g;
g2.drawSomething(); // etc
// Once it is done, check if that function is exists, and call it.
if(secondaryPaint != null){
secondaryPaint(g2);
}
}
}
Puis, dans une autre classe:
// etc
MyComponent mc = new MyComponent()
mc.setSecondaryDrawFunction(paint);
// etc
private void paint(Graphics2D g2){
g2.drawSomething();
}
Je ne sais pas comment lambdas travailler ou si elles sont applicables dans cette situation, mais peut-être que cela?
Voulez-vous dire des classes abstraites? Vous pourriez faire une classe abstraite qui hérite de JComponent et remplacer la méthode paintComponent dans laquelle vous peignez et comme dernier appel vous pouvez appeler votre méthode abstraite définie par votre classe abstraite – Pali