2016-03-20 16 views
0

Basit bir dikdörtgen çizmeye çalışıyorum ama işe yaramıyor. PaintComponent içinde benim ruhu bana paintComponent içine alır söyler. Birkaç saatliğine çalıştım ama yanlış yaptığımı bulamıyorum. PaintComponent, JComponent'i gerektiği gibi genişleten bir sınıftadır. Super.paintComponent (g), super.paintComponent s (g) ve soo açıklarını kullanmıyorum. Neyi kaçırıyorum?java paintComponent (grafik g) çalışmayacak

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

    } 
} 

cevap

1

Kartınızın boyutu yoktur. SetPrefferedSize ile ayarlayın. Ayrıca, fillRect'ten önce g.setColor'u çağırmanız gerekir.