2016-03-20 4 views
0

J'essaye de peindre un simple rectangle, mais cela ne marchera pas. Mon sout in paintComponent me dit que ça devient à l'intérieur de paintComponent. Je l'ai googlé pendant quelques heures maintenant mais je ne peux pas trouver ce que je fais mal. Le paintComponent est dans une classe qui étend JComponent, comme il se doit. J'appelle super.paintComponent (g), pas super.paintComponent s (g) et ainsi de suite. Qu'est-ce que je rate?java paintComponent (les graphismes g) ne fonctionnera pas

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épondre

1

Votre tableau n'a pas de taille. Définissez-le avec setPrefferedSize. Vous devez également appeler g.setColor avant fillRect.