Hello, I tried this and it works, the problem is that I remember that I had performance problems when I had many children in one of these containers when I moved it "a lot". But it worked ok otherwise. However I use this approach when I embed my app in an Applet to avoid security problems.
It reminds me that maybe I was not very cautious with the way I defined and updated this big container, which could be the reason why I had these performance problems. I will look at my code again ;) Hervé Sent from my iPad On 6 juin 2011, at 14:02, Alexander Potochkin <[email protected]> wrote: > Hello Hervé >> Hello, >> >> Thanks, I will look at this, it looks interesting. In fact, the reason why I >> want to avoid setting the clip is because I'm using swing to draw gui >> components in Java according to a standard called ARINC 661 where some of >> the components are just containers with no size but just an offset position, >> where the children can even have a negative position relative to their >> parent container. > > Did you try to resize you container before painting? > > I am thinking about having a big main container which contains all your > children with negative position > so the applied clip wouldn't hurt you > > If you control the painting hierarchy you can also try overriding paint() > method of every child component > and reset clip there > > However may the hack you found is only way to make what you need > > Thanks > alexp > >> Regards, >> >> Herve >> >> Sent from my iPad >> >> On 3 juin 2011, at 16:13, Alexander >> Potochkin<[email protected]> wrote: >> >>> Hello Herve >>> >>> I don't really get it why you need to avoid setting the clip, >>> but anyway the following may be interesting to you >>> >>> http://www.pbjar.org/blogs/jxlayer/jxlayer40/ >>> >>> Piet is transforming Swing components using JXLayer component >>> >>> Thanks >>> alexp >>>> (reposted from awt-dev list, I picked up the wrong list before) >>>> >>>> Hello, >>>> >>>> I'm new to this mailing list and I'm not *really* asking how to do it >>>> because I know how it's possible to do it by using a hack (mainly getting >>>> and setting the BUFFER and TILE parts of the "flags" field for the >>>> JComponent by reflection, and "rewriting" the paintChildren method without >>>> the clipping part). I'm using it in the >>>> http://sourceforge.net/projects/j661/ project to be able to use custom >>>> Swing containers which only offset the position or transform their >>>> children graphic context, without clipping them (allowing to use negative >>>> positions for the children widgets, for example). >>>> >>>> I'm asking if there is a way to do this without playing with the private >>>> "flags" field, because I need to be able to do the same thing in a >>>> restricted JNLP environment. I know a "regular"' way to do this, but it >>>> would be a little cumbersome (offsetting the positions of all children >>>> widgets in the parent container, to be sure that the positions of the >>>> children are never negative, for example). But it's not very good for >>>> performance when something change in the parent container.... >>>> >>>> There are many projects which either play with this private field, or use >>>> transforms, but in this later case they still apply a clipping. Is it >>>> possible to play with the Graphics2D clippings for example before using >>>> the JComponent paintChildren method - or would this approach work ? Or >>>> would the only way to do it without compromising Security be to have a way >>>> to get / set the TILE and BUFFER value of the "flags" field without >>>> reflection ? >>>> >>>> Thanks by advance if you have ideas about this, and sorry if this prose is >>>> not crystal clear ;) >>>> >>>> Regards, >>>> >>>> Herve >>>> >
