/ / java paintComponent (graphics g) ne fonctionnera pas - java, paintcomponent, jcomponent

java paintComponent (graphics g) ne fonctionnera pas - java, paintcomponent, jcomponent

J'essaie de peindre un rectangle simple, maismon travail dans paintComponent me dit qu'il pénètre dans paintComponent. Je l'ai googlé pendant quelques heures mais je ne peux pas trouver ce que je fais mal. PaintComponent est dans une classe qui étend JComponent, comme il se doit. J'appelle super.paintComponent (g), pas super.paintComponents(g) et ainsi de suite. Qu'est-ce que je rate?

import java.awt.*;
import javax.swing.*;
public class Board extends JComponent{
private GameCreator game;
public Board(GameCreator game)
{
this.game = game;
}

@Override
public void paintComponent (Graphics g){
super.paintComponent(g);
g.fillRect(50,50,300,300);
g.setColor(Color.orange);
System.out.println("inside piantComponent");
}

public static void main(String[]args)
{
GameCreator game = new GameCreator(8,10);
game.prepareBoard();
Board board = new Board(game);
new Frame("test", board);
}
}




import javax.swing.*;
import java.awt.*;
public class Frame extends JFrame {
Board board;
JPanel gamePanel;

public Frame(String title, Board board) {
super(title);
setLayout(new BorderLayout());
setPreferredSize(new Dimension(800, 800));
pack();
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

this.board = board;
gamePanel = new JPanel();
gamePanel.add(board);
setContentPane(gamePanel);

}
}

Réponses:

1 pour la réponse № 1

Votre conseil n'a pas de taille. Définissez-le avec setPrefferedSize. Aussi, vous devez appeler g.setColor avant fillRect.