Guldir
-
22 nov. 2017 à 14:18
Guldir
Messages postés1Date d'inscriptionmercredi 22 novembre 2017StatutMembreDernière intervention24 novembre 2017
-
24 nov. 2017 à 10:16
Bonjour,
pour mon projet de lycée j'ai besoin de créer une petite application avec une interface graphique mais je rencontre un problème, je n'arrive pas a faire fonctionner mes boutons
Voici mon code :
public class B1OFF{ public static void setvisible(boolean b) { JFrame B1OFF = new JFrame(); B1OFF.setSize(800,480); B1OFF.setLocation(560,300); B1OFF.add(new JLabel(new ImageIcon("D:/textures/introB1OFF.jpg"))); B1OFF.setUndecorated(true); B1OFF.setVisible(false); }}
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023126 22 nov. 2017 à 18:48
Bonjour,
Tes 4 classes ne sont pas liées entre elles.
CLIC utilise B1OFF, mais Lancement et B2OFF (qui ont les deux méthodes main...) n'appellent ni CLIC ni B1OFF.
Pour le main qui s'exécute (peu importe lequel des deux) c'est comme si ces classes n'existaient pas, donc forcément les boutons ne vont pas faire grand chose.
De plus, tu utilises à tort le mot clé static, il vaut mieux passer des objets aux constructeurs de tes classes pour ajouter des comportements dessus, plutôt que de faire des croisements de méthodes static sur des objets qui n'ont rien à voir.
Exemple dans le code suivant, le Listener Clic prends deux Component en paramètres : celui qu'elle cache et celui qu'elle affiche.
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class CLIC extends MouseAdapter {
private final Component comp1;
private final Component comp2;
public CLIC(Component comp1, Component comp2) {
this.comp1 = comp1;
this.comp2 = comp2;
}
@Override
public void mousePressed(MouseEvent e) {
comp1.setVisible(false);
comp2.setVisible(true);
}
}
Remarque : attention aux conventions de nommage en Java, les classes doivent commencer par une première lettre majuscules et les suivantes sont en minuscules (exemple : Clic au lieu de CLIC, B1off au lieu de B1OFF...) et les objets doivent eux être complètement en minuscules (exemple : b1off au lieu de B1OFF, bouton au lieu de Bouton...)
Cela permet notamment de distinguer les objets et les classes, ce que tu étais incapable de faire quand B1OFF est à la fois le nom d'une classe et le nom d'un objet de cette classe...
Guldir
Messages postés1Date d'inscriptionmercredi 22 novembre 2017StatutMembreDernière intervention24 novembre 2017 24 nov. 2017 à 10:16
Merci grâce a toi j'ai pu comprendre et régler mes problèmes, mais je n'arrive plus a afficher l'image de ma classe fenêtre qui reste grise.
Aussi pourrai tu me dire s'il est possible d'ajouter une texture a une bouton ?
24 nov. 2017 à 10:16
Aussi pourrai tu me dire s'il est possible d'ajouter une texture a une bouton ?