Je suis en train de tenter de créer un jeu très simple, mais j'ai rapidement rencontré un problème. La boîte qu'il est censé dessiner ne s'affiche que partiellement. Il semble que cela ne peut être affiché que dans une zone limitée, mais je n'ai aucune idée de ce qui aurait causé cela ou comment je peux le résoudre.JComponent affiche seulement partiellement
public class Game
{
public static void main(String[] args)
{
Game game = new Game();
}
public Game()
{
JFrame gameFrame = new JFrame();
JPanel somePanel = new JPanel();
Box testBox = new Box(10, 10, 20, 20);
somePanel.add(testBox);
gameFrame.add(somePanel);
gameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameFrame.add(testBox);
gameFrame.setResizable(true);
gameFrame.setBounds(500, 500, 600, 350);
gameFrame.setVisible(true);
}
}
la classe principale
public class Box extends JComponent
{
private int x;
private int y;
private int width;
private int height;
public Box(int x, int y, int width, int heigth)
{
this.x = x;
this.y = y;
this.width = width;
this.height = heigth;
}
public void paintComponent(Graphics g)
{
g.drawRect(x, y, width, height);
}
}
et la classe qui est ('nt) le dessin du rectangle.
Note: C'est la première fois que j'utilise Stackoverflow, donc si j'ai fait quelque chose de mal, dites-le moi s'il vous plaît.
Voici une image du cadre:
Dessin de la boîte avec une classe JPanel extension semble fonctionner, ce n'est pas ce que je voulais, mais au moins cela fonctionne.
Veuillez formater correctement votre code et mettre en place un programme minimal complet reproduisant le problème. Ce code ne compile pas, et si je renomme g2d en g, alors cela fonctionne bien (bien que somePanel soit inutile, puisque vous y ajoutez la case, mais immédiatement après l'ajouter au frame lui-même). Respectez également les conventions de dénomination Java. Les variables commencent par une lettre minuscule. –
Vous ajoutez deux fois la boîte de test - une fois sur un panel, une fois sur gameframe. – Kylar
@Kylar Juste essayé de supprimer cette ligne, mais il semble que rien n'a changé. – aulerelyn