Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] Estensione JButton

    Ciao ragazzi,
    io e un mio amico stiamo cercando di portare a termine un "semplice" applicativo di Scacchi. Abbiamo riscontrato un piccolo problema nel momento in cui, a livello di interfaccia grafica, abbiamo esteso JButton con una classe JPezzi, la quale nel costruttore richiede pure anche 2 interi che corrispondono alle coordinate nella matrice di bottoni (8*8): in pratica se noi usiamo la matrice con JPezzi, il GridLayout del Pannello nella quale è inserita se ne va a ******* riducendosi ad un minuscolo quadrato nel quale appare un bottone a caso e che cambia in base alla posizione del mouse nel pannello stesso, cosa che non succede nel caso utilizziamo una matrice di normalissimi JButton. Qualche consiglio per evitare questa seccatura o per risolverla?

    Immagine con i JPezzi
    http://img13.imageshack.us/i/scacchi2.png/

    Immagine con i JButton
    http://img836.imageshack.us/i/scacchi1.png/

  2. #2
    Evidentemente nella classe JPezzi effettuate l'overriding di qualche metodo della classe padre JButton o delle classi dalle quali JButton eredita. Ma senza vedere il codice non è facile capire di cosa si possa trattare.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    codice:
    package Interfaccia;
    
    import javax.swing.JButton;
    
    public class JPezzi extends JButton{
    	String Text;
    	int x, y;
    	
    	public JPezzi(String Text, int x, int y){
    		super(Text);
    		this.Text = Text;
    		this.x = x;
    		this.y = y;
    	}
    	
    	public JPezzi(int x, int y){
    		super();
    		this.Text = "";
    		this.x = x;
    		this.y = y;
    	}
    	
    	public int getX(){
    		return x;
    	}
    	
    	public int getY(){
    		return y;
    	}
    	
    	public String getText(){
    		return Text;
    	}
    }
    ecco il codice della classe Pezzi

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Cambia il nome dei metodi:

    codice:
    getX() --> getPosX();
    getY() --> getPosY();
    getX() e getY() in questo caso sovrascrivono quelli originali di JComponent.

    PS: Che brutta quella variabile "Text" con la T maiuscola... contro ogni regola di nomenclatura Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    getX() e getY() sono metodi che JButton eredita dalla classe JComponent. Per cui reimplementandoli nella vostra classe JPezzi ne effettuate l'overriding. getX() e getY() vengono sicuramente utilizzati dal gestore del layout per il posizionamento del componente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Originariamente inviato da LeleFT
    ...
    PS: Che brutta quella variabile "Text" con la T maiuscola... contro ogni regola di nomenclatura Java.
    ...
    Concordo.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    si ma per ora è il codice molto rudimentale.. tutte le finezze le riguardiamo alla fine.. adesso siamo abbastanza presi dalla struttura generale

    Grazie mille ad entrambi, ora funziona!!! A presto ragazzi, grazie ancora...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.