I am new to Swing. I want to write a program which reads a file and draws something depending on the data read from the file.
I checked the tutorials and they call the drawing methods in paint(). So I added the code to read the file too in the paint() method. However, I noticed that the paint() method may be called multiple times. So the file would be read each time the paint() method is called.
I want to read the file only once. If I read the file in main() method how do I get access to the Graphics object? Or is there any other approach to solve this problem?
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JPanel {
public void paint(Graphics g) {
// Code to read a file
// Code to draw something depending on the data read from the file
}
public static void main(String[] args) {
JFrame frame = new JFrame("Java 2D Skeleton");
frame.add(new Test());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(280, 240);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}