Hello,
I am wondering what is the best way to this common GUI task:
Draw some rectangles, lines, pies, etc (say, in a JPanel). Make sure
these things are "pointable" and "pickable": when mouse is moved over
it, we can press mouse key to "pick up" it and drag it around, etc.
Previously in some early school homework projects, I just stored the
locations for each of them in an array. For example, for a line, I
stored its starting and ending (x, y) points. For a rectangle, I stored
its 4 corner points (x,y). In listener for mouse move (or click, drag)
in JPanel, I got the current mouse's position, and checked each item in
the above array to see if the mouse was in any of them. This worked ok
with not too many lines or rectangles. And it did not use too much
memory also since only several integers needed to be saved for each
line or rectangle, etc.
Any idea of better method? (in terms of efficiency, for example, we may
have 10000 rectangels and 50000 lines. And of course we need it for
real time when user moves the mouse around).
Thanks. :-)
Kevin - 26 Feb 2006 22:52 GMT
By the way, I think one way is to make each line / rectangle / pie etc
an object. But that sounds like not efficient if we have many of them.
Right? And also I am not sure how to do it.
Richard Wheeldon - 27 Feb 2006 19:12 GMT
> I am wondering what is the best way to this common GUI task:
>
> Draw some rectangles, lines, pies, etc (say, in a JPanel). Make sure
> these things are "pointable" and "pickable": when mouse is moved over
> it, we can press mouse key to "pick up" it and drag it around, etc.
Moreover, can someone recommend some sort of framework/toolset/api for
doing this as easily as possible ? I have a need to do something very
similar,
Richard