Problème d'objet dans Java !

Fermé
Cotton - Modifié par KX le 7/11/2015 à 13:29
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 7 nov. 2015 à 13:38
Salut Salut,

J'ai une petite question pour vous les ami(e)s à propos de .... JAVA !

Voila le résumé :

J'ai une classe, GameEngine dans laquelle j'ai créée des boutons JButton. j'ai voulu ensuite les personnaliser un petit peu. Mon code est ci-dessous :

JButton vButtonNorth = new JButton();
vButtonNorth.setPreferredSize(new Dimension(65, 65));
vButtonNorth.setText("NORTH");
vButtonNorth.setIcon(new ImageIcon("bouton1.png"));
vButtonNorth.setVerticalTextPosition(SwingConstants.CENTER); 
vButtonNorth.setHorizontalTextPosition(SwingConstants.CENTER );
vButtonNorth.setBorderPainted(false);
vButtonNorth.setContentAreaFilled(false); 
vButtonNorth.setFocusPainted(false); 
vButtonNorth.setOpaque(false);


Jusque là, rien de bien extraordinaire. Les méthodes utilisées permettent juste la personnalisation du bouton visé.
Cela marche très bien, ok. MAIS ! J'ai plusieurs boutons et je veux créer une méthode pour simplifier mon code. J'ai donc fait ceci :

public void setConfigButton(String pText, String pImage, int pSizeX, int pSizeY)
{
this.setText(pText);
this.setIcon(new ImageIcon(pImage));
this.setPreferredSize(new Dimension(pSizeX, pSizeY));
this.setVerticalTextPosition(SwingConstants.CENTER); 
this.setHorizontalTextPosition(SwingConstants.CENTER);
this.setBorderPainted(false);
this.setContentAreaFilled(false); 
this.setFocusPainted(false); 
this.setOpaque(false);
}


Dans l'idée d'écrire par la suite :
monbouton.setConfigButton("NORTH", "image.png", 65, 65);
par exemple.

Le problème est que, this n'est plus valable ici. Une erreur de compilation se produit car les méthodes setText(), setIcon(), ... veulent un objet de type JButton (cannot find symbol) ! Or, ici, je dis this. Ma question est donc, comment faire pour contourner ce problème ?

Je vous remercie,

Bonne journée,

Cotton.

A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
7 nov. 2015 à 13:38
Bonjour,

La méthode
setConfigButton
est dans quelle classe ?
Si
this
doit se comporter comme un JButton, il faudrait que la méthode soit dans une classe
extends JButton
, est-ce le cas ?

Perso, je ferais plutôt ce genre de codes :

public static void modifButton(JButton button, String pText, ...) {
    button.setText(pText);
    ...
}

JButton myButton = new JButton();
modifButton(myButton, "NORTH", ...);

Ou :

public static JButton initButton(String pText, ...) {
    JButton button = new JButton();
    button.setText(pText);
    ...
    return button;
}

JButton myButton = initButton("NORTH", ...);
1