Dans ce JPanel, mon JButton "BackToTheMenu" est en haut du panneau et je sais où il est si je peux cliquer dessus, mais je ne peux pas le voir. Quand je clique dessus, ça me mène parfaitement au panneau suivant. Comment puis-je l'amener à apparaître? L'aide est vraiment appréciée!Pourquoi mon JButton n'apparaît pas du tout mais fonctionne toujours? (Je sais où il est si je peux cliquer dessus)
public class GridPanel extends JPanel implements ActionListener
{
Ball ball = new Ball();
Timer timer = new Timer(14, this);
JButton backToTheMenu = new JButton("To the Menu");
public GridPanel()
{
setBackground(Color.WHITE);
setPreferredSize(new Dimension(900, 710));
add(ball);
backToTheMenu.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
ProjectileGame.gridButtonPressed();
}
});
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(0, 649, 30, 33);
g.setColor(Color.BLUE);
for (int i = 0; i < 35; i++)
{
g.setColor(Color.GREEN);
g.drawLine(0, (20+(30*i)), 900, (20+(30*i)));
g.drawLine((30+(30*i)), 0, (30+(30*i)), 1000);
}
ball.paintComponent(g);
g.setColor(Color.RED);
g.drawLine(0, 650, 900, 650);
g.drawLine(30, 0, 30, 1000);
Graphics2D g2d1 = (Graphics2D)g;
g.setColor(Color.BLACK);
g2d1.drawString("X Displacement (metres)", 400, 667);
AffineTransform at = new AffineTransform();
at.setToRotation(Math.PI/-1.97);
g2d1.setTransform(at);
g2d1.drawString("Y Displacement (metres)", -380, 8);
setOpaque(false);
for (Component child : getComponents())
{
child.repaint();
}
}
public void actionPerformed(ActionEvent e)
{
ball.ballPhysics();
repaint();
timer.restart();
}
}
1) Pour une meilleure aide plus tôt, poster un [MCVE] ou [Short, autoportantes correcte Exemple] (http://www.sscce.org /). 2) 'backToTheMenu' n'est jamais ajouté au panneau. –
'public void paintComponent (Graphiques g) { super.paintComponent (g); ..' la dernière ligne de cet extrait, atteint .. 'pour (Composant enfant: getComponents()) { child.repaint(); } '.. cet extrait. –
Êtes-vous sûr que 'ProjectileGame.gridButtonPressed()' n'est pas appelé ailleurs? Aussi pouvez-vous ajouter des lignes de débogage dans 'actionPerformed()', juste pour vérifier si cette action est effectuée sur le bouton? – Arvind