I am trying to write a code to generate a graph like this: http://www.mathgoodies.com/lessons/graphs/images/line_example1.jpg
I need more than one different line (I hope that’s what they are called).
I’m just starting to learn awt and swing. After exhausting three hours of work, I couldn’t manage a way to draw a line on top of any other drawing.
I’ll try to explain my problem with an example.
Lets say I draw a square like this:
JFrame window = new JFrame();
window.setLayout(null);
window.setVisible(true);
Graph graph = new Graph();
window.add(graph);
//-------------------
public class Graph extends JPanel {
....
public void paintComponent (Graphics g) {
super.paintComponent(g);
g.setColor(Color.white);
g.fillRect(150, 20, x, y);
}
....
}
How do I draw another line or anything else on top of this white square whithout drawing the line in the Graphs paintComponent method? How do I add another JPanel on top of another one, so that both of them are visible? (I’m using JPanel to add some buttons)
Hopefully you can understand what I’m asking.
Thank you!
All custom painting should be done in the paintComponent() method. I’m not sure why you want to add another panel that paints on line. Keep it simple and keep all the painting code in one place.
If you want to add other components (like a JPanel) to the panel then you would use layout managers to lay out the components properly. You would also need to make the components non-opaque by using the setOpaque(…) method.
Another way to layer components is to use a JLayeredPane.
Start by reading the Swing tutorial. There are sections on: