2016-03-20 13 views
0

単純な四角形をペイントしようとしていますが、動作しません。 paintComponentの私のsoutは、paintComponentの内部に入ることを教えてくれます。私は数時間それをgoogledしたが、私は間違っていることを見つけることができません。 paintComponentはJComponentを拡張するクラスにあります。 super.paintComponent s(g)とsooをonではなく、super.paintComponent(g)を呼び出します。私は何が欠けていますか?java paintComponent(graphics g)が動作しません

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); 

    } 
} 

答えて

1

ボードのサイズがありません。 setPrefferedSizeで設定します。また、fillRectの前にg.setColorを呼び出す必要があります。

関連する問題