J'ai écrit une classe, nous appellerons cette DrawCard pour cette question, pour afficher une carte de jeu tirée au hasard dans ma classe de deck. J'ai écrit un objet graphique contenant des informations associées à une carte à jouer, costume, valeur, couleur, etc. J'initialise l'objet dans ma méthode principale et l'ajoute à un JFrame et il affiche et dessine tout à 100% correctement. J'ai ensuite ajouté une barre d'outils avec un bouton dont l'écouteur d'action est censé créer un nouvel objet DrawCard, supprimer le premier de l'image et ajouter le nouveau à l'image. Le programme compile et fonctionne très bien mais quand je clique sur le bouton, il ne dessine pas une nouvelle carte sur le cadre. Il enlèvera le premier mais ne rajoutera pas le nouveau au cadre, même si j'appelle la méthode repaint.Objet graphique Java non mis à jour?
Voici le code que j'ai dans ma méthode principale:
JFrame frame = new JFrame("Paying Card");
JButton button = new JButton("Button 1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int width = 330;
int height = 500;
frame.setSize(width, height);
DrawPlayingCard drawCard = new DrawPlayingCard(1, 1,width,height,1, frame);
JToolBar toolBar = new JToolBar("This Tool Bar Does Nothing.");
toolBar.add(button);
toolBar.addSeparator();
Container contentPane = frame.getContentPane();
contentPane.add(toolBar, BorderLayout.NORTH);
frame.add(drawCard);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
frame.remove(drawCard);
frame.repaint();
//method signature:
//public DrawPlayingCard(int x, int y, int width, int height, int arcSize, JFrame frame);
DrawPlayingCard drawCard2 = new DrawPlayingCard(1, 1, width, height, 1, frame);
System.out.println("Card drawn");
frame.add(drawCard2);
}
});
frame.setLocationRelativeTo(null);
frame.setVisible(true);
J'ai essayé d'appeler la méthode repeindre mon JFrame dans quelques endroits différents autour de la principale méthode et à l'intérieur de mon ActionListener sans chance. J'ai également essayé d'ajouter mes objets dans différents ordres mais rien ne semble fonctionner. Toute aide serait grandement appréciée!
Post a [mcve] .. – user1803551
J'ai fourni toutes les classes écrites dans le passé et j'ai été déclassé pour fournir trop de code avec ma question. Comment ferais-je cela sans être abattu et perdre le représentant, comme le représentant est difficile à construire ici. –