Domanda

Sto avendo qualche problema con SetClip in Java. Ho una classe che estende JPanel. In quella classe ho ignorato il metodo paintComponent. Il mio metodo paintComponent simile a questa:

paintComponent {
    //draw some lines here
    Rectangle whole = g2.getClipBounds();//g2 is my Graphics2D object
    Rectangle part = <some rectangle that is a part of the whole paintable area>;
    g2.setClip(part);
    //draw some more stuff here
    g2.setClip(whole);
}

Il problema che sto vedendo è che l'area della regione tagliata sembra essere dipinto più volte. Per esempio, se dico che a dipingere, dipinge bene. Ma allora, se posso passare le finestre o in qualche modo altrimenti causare a dipingere di nuovo la stessa cosa, la regione tagliata non viene cancellato, mentre il resto è. Ciò si traduce nella pittura sulla regione agganciato ad apparire più audace rispetto al resto della zona verniciabile.

Immagino che mi manca qualcosa in opere come SetClip.

Tutti i suggerimenti molto sarebbero apprezzati. Grazie in anticipo per qualsiasi aiuto.

È stato utile?

Soluzione

La creazione di un nuovo oggetto Graphics da quello vecchio ha fatto il trucco per me, come avvertita da Tom.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top