Custom JComponent dans un GridLayout
Bonjour!
Mon application doit afficher un tableau d'objets, en vue de créer un "éditeur de niveau" pour un jeu à la Dungeon Master (isométrique, simple, etc.).
L'idée est donc de représenter chaque block du terrain (mur, sol, porte) par un carré dans l'éditeur.
Le code de la fenêtre de l'éditeur est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public class LevelEditorWindow extends javax.swing.JFrame {
/** Creates new form LevelEditorWindow */
public LevelEditorWindow() {
initComponents(); // Généré par Matisse
initWindow(); // Set le look and feel sur "system"
int size = 10; // Largeur du niveau, en blocks
int squareSize = 16; // Largeur d'un carré dans l'éditeur
levelPanel.setLayout(new GridLayout(0, size));
for (int i = 0; i < size * size; i++) {
levelPanel.add(new LevelBlockComponent());
}
this.setVisible(true);
} (...) // initComponents() et initWindow() |
Mon custom JComponent est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public class LevelBlockComponent extends JComponent {
public LevelBlockComponent() {
super();
this.setMinimumSize(new Dimension(16, 16));
this.setMaximumSize(new Dimension(16, 16));
this.setSize(16, 16);
this.setBackground(Color.BLUE);
this.setBorder(BorderFactory.createLineBorder(Color.black));
}
} |
en exécutant ceci je n'obtiens qu'un seul carré noir de quelques pixels de coté (sans fond bleu, etc. juste un simple carré noir) alors que si l'on remplace
Code:
levelPanel.add(new LevelBlockComponent());
par
Code:
levelPanel.add(new JButton("test"));
on voit apparaître une horde de boutons "test"...
je ne trouve pas comment écrire mon custom JComponent... merci pour votre aide!