Monday, September 1, 2014

Java2D -> ArrayList + Button click = drawing on JPanel
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Hello there,
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































I am trying to do something that should be fairly simple, or so I'm told.































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































I'm just starting to learn Java, btw.
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































You're using Eclipse and you created a Java Swing Application window.































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































You added an ArrayList of rectangles, a button to the left, and a custom JPanel to the right.
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Note that the arraylist is not defined in the button or custom jpanel class. The reason is that its defined by user input. You see, in this app (pdf imposition app) I wrote some code that calculates the best imposition on a sheet for a given pdf and the arraylist holds the position and dimensions for each pdf rectangle/shape.
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Now, you're the programmer...































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Here's here's the scenario you want to see happening.
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































1-) The user click the impose button.































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































2-) The custom JPanel clears itself of any previous drawings and draws the rectangles as seen in the ArrayList of rectangles.
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































So you have three separate things to contend with: an ArrayList of stuff to draw, a button to initiate the drawing, and a custom jpanel to draw on.
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































How do you do this?
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Thanks,
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































ps: On the internet, most code examples refer to painting that's controlled either at the class creation time or by mouse events inside the component (usually a jpanel) itself. I didn't find any examples where an external component, like a button, controls through its click event the drawing on another component that in turns draws stuff that is defined outside its own class data.
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































ps2: I would donate a Starbucks card for someone showing me a working example. Smile | :)































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































No comments:

Post a Comment