My paintComponent()
won't get called.
I have Googled a little, and haven't found an answer that I could use. At first, I didn't have the frame.getContentPane().add(this)
, and thought that the answer was to insert that, but neither that worked. I hope someone can help me out.
Here you have a little snippet of my code:
package engine;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Frame extends JPanel {
private static final long serialVersionUID = 1L;
private JFrame frame = new JFrame();
private GameEngine engine;
private Game game;
public Frame(GameEngine engine) {
this.engine = engine;
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setSize(1920, 1080);
frame.getContentPane().add(this);
}
public void updateGame(Game game) {
this.game = game;
}
public JFrame getFrame() {
return frame;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.drawString("" + game.getClockDate(), 1920 - 100, 20);
System.out.println("test");
}
}
I'm calling it from here, in another class:
public void loop() {
if (this.ingame) {
game.loop();
frame.updateGame(game);
frame.repaint();
}
}