IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Class herite de JButton qui marche pas bien


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 88
    Points
    88
    Par défaut Class herite de JButton qui marche pas bien
    Salut tous le monde,

    En fait j'ai dans ma fenetre un gridlayout et je veux mettre des boutons d'une classe que j'ai cree qui herite de JButton.

    Quand je met des JButton normaux ca me met les boutons bien dans chaque case de mon gridlayout.
    Mais quand je veux y mettre des boutons de ma classe ca me met le premier mais pas les autres. Par contre quand je passe la sourie dans la fenetre, l'icone (ImageIcon) du bouton change et affiche celui des autres boutons (qui eux ne sont pas ajoutes a la fenetre

    Voici un screen avec des JButton normaux:


    Et voici un screen avec les bouton de ma classe:


    La classe qui cree la fenetre (les parties en commentaire correspondent aux partie utilisant les JButton normaux):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public class RoadsGui extends JFrame{
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	//JButton[] B_Grid;
    	RoadBit[] allBits;
    	int i,j;
     
     
    	//Creates the road bits window
    	public RoadsGui() throws HeadlessException {
    		super();
    		this.setLayout(new GridLayout(6,2));
    		//B_Grid = new JButton[12];
    		allBits = new RoadBit[12];
    		this.initRoadBitsTable();
    		for (i=0; i<12; i++)
    		{
    			//B_Grid[i] = new JButton();
    			//B_Grid[i].setIcon(allBits[i].getIcon());
    			//B_Grid[i].setDisabledIcon(allBits[i].getIcon());
    			//B_Grid[i].setEnabled(false);
    			//add(B_Grid[i]);
    			add(allBits[i]);
    		}
    	}
     
    	//Initialise the road bits window
    	public void initRoadBitsTable()
    	{
    		allBits[0] = new RoadBit(1100,0,0);
    		allBits[1] = new RoadBit(11,0,0);
    		allBits[2] = new RoadBit(110,0,0);
    		allBits[3] = new RoadBit(1001,0,0);
    		allBits[4] = new RoadBit(1010,0,0);
    		allBits[5] = new RoadBit(101,0,0);
    		allBits[6] = new RoadBit(1011,0,0);
    		allBits[7] = new RoadBit(1110,0,0);
    		allBits[8] = new RoadBit(1101,0,0);
    		allBits[9] = new RoadBit(111,0,0);
    		allBits[10] = new RoadBit(1111,0,0);
    		allBits[11] = new RoadBit(0,0,0);
     
    	}
    ...
    La classe de mes boutons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    public class RoadBit extends JButton{
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	//private ImageIcon icon;
    	private boolean N, W, S, E;
    	private int code; //Stands for NWSE with 1=true 0=false
    	private int x, y;
     
    	public RoadBit(int code, int x, int y) {
    		super();
    		this.code = code;
    		this.x = x;
    		this.y = y;
     
    		//Depending on its code we will initialise differently the road bit
    		switch (code){
    		//DownRight
    		case 1100:
    			this.setIcon(new ImageIcon("URL/DownRight.jpg"));
    			this.N=true;
    			this.W=true;
    			this.S=false;
    			this.W=false;
    			break;
    		//RightDown 0011
    		case 11:
     
    etc...

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Je viens de voir que tu avais des attributs x et y dans tes classes. A tout hasard tu n'aurais pas fait des méthodes getX() et getY() qui redéfinirait les méthodes de la classe parente ?


    a++

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 88
    Points
    88
    Par défaut
    Looooool

    Beh ouai c'etait ca!
    J'avais fait mes Get/Set

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Fonction compte qui marche pas bien
    Par djibouli dans le forum Macros Access
    Réponses: 4
    Dernier message: 12/07/2014, 10h41
  2. fonction drawrect qui marche pas bien..
    Par pikaTuX dans le forum Objective-C
    Réponses: 2
    Dernier message: 22/07/2010, 13h07
  3. envoi en tcp qui marche pas bien
    Par zarbiman dans le forum Développement
    Réponses: 2
    Dernier message: 18/12/2007, 00h21
  4. Réponses: 2
    Dernier message: 22/09/2007, 11h39
  5. Allocation dynamique de classe qui marche pas
    Par Guillaume602 dans le forum C++
    Réponses: 8
    Dernier message: 11/07/2006, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo