Java Swing - Composite et GridLayout Marges/Rembourrage

Je suis en train de travailler sur la construction d'un jeu d'échecs en Java, et je suis en train d'avoir un peu de mal à obtenir le GUI exactement comme je le veux avec Swing. Je suis à l'aide d'un GridLayout d'organiser une grille de 8x8 ChessButtons (qui remplacent les JButton afin que je puisse stocker des informations supplémentaires à l'intérieur d'eux comme des coordonnées). À l'origine, le ChessButtons n'apparaîtra pas à moins que je on passe la souris au-dessus d'eux, mais j'ai résolu le problème en plaçant chaque ChessButton à l'intérieur d'un distinct JPanel et le réglage de chaque bouton setPreferredSize() à un ensemble de hauteur et de largeur.

Maintenant, mon problème est qu'il semble y avoir une petite marge ou de rembourrage ci-dessus (et/ou en dessous?) chaque bouton. J'ai fait en sorte de jeu de setHgap(0) et setVgap(0) pour la GridLayout, donc je suis sûr que le mystérieux marge est en provenance soit le ou les boutons de JPanels. Mais, je n'arrive pas à se débarrasser d'eux, et ils semblent être à l'origine de chaque ChessButton pour décaler un peu vers le haut/vers le bas chaque fois que je souris.

Je me rends compte de cette description du problème est peut-être un peu de mal à visualiser, donc j'ai pris une capture d'écran (à l'aide de JButtons plutôt que de ChessButtons ainsi, les écarts sont un peu plus faciles à reconnaître): http://img3.imageshack.us/img3/6656/jbuttonmargins.png

Voici le code que j'ai utilisé pour initialiser chaque ChessButton:

    chessBoard = new JPanel(new GridLayout(8, 8, 0, 0));
    chessBoard.setBorder(BorderFactory.createEmptyBorder());

    for (int i = 0; i <= 65; i++) {
            //Create a new ChessButton
            ChessButton button = new ChessButton("hi");
            button.setBorder(BorderFactory.createEmptyBorder());
            button.setPreferredSize(new Dimension(75, 75));
            button.setMargin(new Insets(0, 0, 0, 0));

            //Create a new JPanel that the ChessButton will go into
            JPanel buttonPanel = new JPanel();
            buttonPanel.setPreferredSize(new Dimension(75, 75));
            buttonPanel.setBorder(BorderFactory.createEmptyBorder());
            buttonPanel.add(button);

            //Add the buttonPanel to the grid
            chessBoard.add(buttonPanel);
    }

Alors, comment puis-je me débarrasser de ces vertical espaces entre les boutons? Je suis relativement nouveau à Swing, donc je suis désolé si la réponse est extrêmement évident, mais j'apprécierais toute aide que n'importe qui pourrait ont à offrir! Merci à l'avance!

OriginalL'auteur dwat | 2010-12-02