Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-06-2008, 19:04   #1
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
[JAVA] MasterMind: imparando ad usare NetBeans GUI Editor...

Salve a tutti, sto iniziando ad imparare il linguaggio Java. Purtroppo ho delle direttive ben precise, ad esempio devo usare NetBeans e il suo editor di GUI per realizzare una mia versione del famoso gioco Mastermind. Mi sono messo al lavoro da poco, ed il primo problema col quale mi scontro è l'incapacità (mia) di creare array di oggetti grafici (label, ecc...). Volevo chiedervi se è possibile e, se sì, come farlo.

Il problema in pratica sta nel fatto che altrimenti ogni singolo piolo di ogni singola combinazione è un elemento a sè stante, per un totale di 32 oggetti, per ognuno dei quali, al momento, ho previsto le seguenti istruzioni:
Codice:
private void x8y1MouseEntered(java.awt.event.MouseEvent evt) {                                  
    int riga=8;
    if(riga==8)
    x8y1.setBackground(new java.awt.Color(200, 200, 200));
}                                 

private void x8y1MouseExited(java.awt.event.MouseEvent evt) {                                 
    int riga=8;
    if(riga==8)
    x8y1.setBackground(new java.awt.Color(159, 159, 159));
}                                

private void x8y1MouseClicked(java.awt.event.MouseEvent evt) {                                  
    if(!x8y1.isEnabled())
    {
    x8y1.setIcon(ColorSelectedG.getIcon());
    x8y1.setEnabled(rootPaneCheckingEnabled);
    miacomb[0]=c;
    x++;
    if(x==4)
        nebi=ctrl.check(miacomb, codice);
    }
}
Mi sembra assurdo dover riscrivere esattamente queste cose per ben 32 volte!
A questo si aggiungono altri problemi, ad esempio volendo colorare i pioli bianchi e neri relativi ad una soluzione, sarebbe molto comodo usare un ciclo for se si avesse a disposizione un array di oggetti Label.

So di non essere stato chiaro, ma più di così non ci riesco.
Confido nel fatto che qualcuno di voi nel corso dei propri studi si sia imbattuto nell'implementazione di Mastermind in Java.
Grazie per l'aiuto.
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 09:32   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da riva.dani Guarda i messaggi
A questo si aggiungono altri problemi, ad esempio volendo colorare i pioli bianchi e neri relativi ad una soluzione, sarebbe molto comodo usare un ciclo for se si avesse a disposizione un array di oggetti Label.

So di non essere stato chiaro, ma più di così non ci riesco.
Confido nel fatto che qualcuno di voi nel corso dei propri studi si sia imbattuto nell'implementazione di Mastermind in Java.
Grazie per l'aiuto.
Ciao,
non ho mai "avuto a che fare" con MasterMind ma utilizzo anche io NetBeans (in efetti è un tantino sovvradimensionato come ambiente di sviluppo per chi inizia ) .

Se vuoi crearti un array di Label (JLabel presumo, usi Swing?) allora non devi prenderle una a una dalla palette dei componenti grafici e trascinarle nella tua finestra, perchè così Matisse (l'editor grafico di GUI di NetBeans) crea un'istanza per ogni singola JLabel che ti finisce nel "codice blindato" della tua classe.

Per ovviare al problema devi lasciar perdere l'inserimento delle JLabel da edit grafico e crearti te direttamente nel codice della tua classe una variabile (per esempio) di tipo ArrayList<JLabel>, oppure (se ancora non sei familiare con Collections & Generics) una variabile di tipo JLabel[] (array di JLabel).

Poi nel codice ti devi gestire a mano l'istanziazione delle singole JLabel (che potresti inserire nel costruttore della tua classe, dopo la chiamata al metodo initComponents() aggiunta da Matisse[serve a inizializzare i componenti grafici]).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 15:50   #3
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
Grazie mille per la risposta! Però non sono in grado di metterla a punto, avrei bisogno di una mano...

Allora se non ho capito male potrei fare qualcosa del genere:
Codice:
private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;
        JLabel[] array = new JLabel[number]; //questo l'ho trovato su google :p
        x8y1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                x8y1MouseClicked(evt);
            }
            });
        Riga8.add(x8y1, new java.awt.GridBagConstraints());

pack();
}
Ci sono andato tanto lontano? Sicuramente qualcosa di sbagliato c'è, perchè nel copia incolla mi è rimasto qualcosa relativamente al pannello che dovrebbe fare da container per le jlabel. Il mio problema è che "private void initComponents()" esiste già, ed inaccessibile, non posso modificarne il codice. Posso creare una nuova classe contenente le jlabel? Poi matisse come le vede?

In effetti se imparassi a fare questa cosa poi il resto sarebbe in discesa, perchè praticamente ogni componente del campo da gioco diventerebbe parte di un array (riga), o addirittura, se possibile, potrei fare un array di righe, in cui ogni riga è un array di Jlabel (che uso come container per piccole immagini). Quindi grazie a chiunque come banryu79 mi darà una mano!

PS: Sto cercando guide online per questa cosa, anche in inglese, ma con scarso successo. Anche un piccolo link sarebbe d'aiuto.
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x

Ultima modifica di riva.dani : 26-06-2008 alle 15:53.
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 17:16   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Ehm, come dire, ti avevo già risposto anche su questo:
Quote:
Poi nel codice ti devi gestire a mano l'istanziazione delle singole JLabel (che potresti inserire nel costruttore della tua classe, dopo la chiamata al metodo initComponents() aggiunta da Matisse[serve a inizializzare i componenti grafici]).
Devi istanziare il tuo array nel costruttore della tua classe, subito dopo la chiamata automatica a initComponents(), non dentro initComponents()
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 17:25   #5
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
Scusa, forse due righe di codice sarebbero d'aiuto. Non ho idea di come si faccia quello che mi consigli di fare. Per ora ho creato una nuova classe "riga" in un nuovo file per evitare casini, e ci ho scritto questo:
Codice:
package mastermind;
import javax.swing.JLabel;

public class riga {

    JLabel[] elemento = new JLabel[4];

    public riga() {
        for (int y = 0; y < 4; y++) {
            elemento[y] = new JLabel();
        }
    }
}
Adesso immagino di poter usare elemento[i] come fosse una JLabel qualunque, in modo tale da scrivere il codice una volta sola anzichè 32 volte. Bene! Però... Ora, come istanzio l'array? E' possibile vederlo all'interno del GUI editor per piazzare le 4 etichette dove voglio io?
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 17:44   #6
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Ecco cosa intendeva banryu!

Codice:
package mastermind;

import javax.swing.JLabel;

public class riga {

      public riga(){
           initComponents()

           JLabel[] elemento = new JLabel[4];

            /* Tutto il codice da aggiungere 
             *va inserito da qui!!!
             */
          for (int y = 0; y < 4; y++) {
                 elemento[y] = new JLabel();
               }
         }

/*Codice generato da NB*/
        public void initComponents(){
              ........
          }
    }
}
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 17:54   #7
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
Grazie 1000!

Ma il mio problema persiste poichè vi è già un
Codice:
    /** Creates new form Interfaccia*/ 
    public Interfaccia() {
        initComponents();
    }
proprio prima del codice generato da NB e di conseguenza la ripetizione di initComponents() mi dà errore. Comunque inizio a pensare di essere un po' troppo niubbo per queste cose.
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x

Ultima modifica di riva.dani : 26-06-2008 alle 18:01.
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 18:03   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da riva.dani Guarda i messaggi
Ora, come istanzio l'array?
l'array di JLabel lo hai già istanziato nel codice che hai postato qui sopra.
Perdonami, ma non avendo mai giocato a MasterMind non so se il numero di JLabel che ti occorrono sia fisso e conosciuto a priori o sia dinamico...

Quote:
Originariamente inviato da riva.dani Guarda i messaggi
E' possibile vederlo all'interno del GUI editor per piazzare le 4 etichette dove voglio io?
Questo no, devi fare tutto da codice.
Ad esempio per settare la posizione puoi usare il metodo .setLocation(x, y) che JLabel eredita da Component .
In pratica devi cominciare a studiarti le basi di AWT e Swing, sul sito della Sun trovi molti tutorial ben strutturati, ovviamente in inglese.

Devi fare tutto da codice propio perchè a te occorre un array di JLabel, cosa che l'editor grafico non ti permette di gestire in modo visuale.

P.S.: initComponents() viene gestito automaticamente da Netbeans, non devi ne scriverci niente dentro (tanto non puoi) ne chiamarlo tu una seconda volta.

Io intendevo che il tuo codice per istanziare l'array e popolarlo con le JLabel lo potresti scrivere dopo la chiamata a initComponets() che di solito viene automaticamente inserita nel costruttore della classe visuale, tutto lì.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 18:08   #9
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
Il numero di componenti è fisso, almeno questo è un vantaggio!

Quindi tutto da codice? Ok proverò, e proverò pure ad usare i metodi che mi hai consigliato (tipo .setLocation). Tanto sono libero di scopiazzare dal codice che NB ha generato (proprio quello che non posso modificare). Mi avete sbloccato la mente... Mi stanno venendo un po' di idee nuove, ad esempio creare le JLabel solo quando servono.

Quindi per ora grazie mille ad entrambi, se avrò altri problemi scriverò ancora qui! Alla prossima!
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 18:08   #10
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Quote:
Originariamente inviato da riva.dani Guarda i messaggi
Grazie 1000!

Ma il mio problema persiste poichè vi è già un
Codice:
    /** Creates new form Interfaccia*/ 
    public Interfaccia() {
        initComponents();
    }
proprio prima del codice generato da NB e di conseguenza la ripetizione di initComponents() mi dà errore. Comunque inizio a pensare di essere un po' troppo niubbo per queste cose.
Avevo capito male.. Comunque va così allora:
Codice:
    /** Creates new form Interfaccia*/ 
    public Interfaccia() {
        initComponents();

            /* Tutto il codice da aggiungere 
             *va inserito da qui!!!
             */

        JLabel[] elemento = new JLabel[4];

          for (int y = 0; y < 4; y++) {
                 elemento[y] = new JLabel();
               }
    }
Comunque asclta i consigli di banryu.. sono preziosi.. Io li sfrutto spesso ultimamente.. ASD ASD
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 18:10   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da riva.dani Guarda i messaggi
Comunque inizio a pensare di essere un po' troppo niubbo per queste cose.
Non è una questione di essere nubbi o meno, il discorso è che l'editor grafico in NetBeans non è stato inserito con lo scopo di permettere di programmare anche all'utente/programmatore occasionale senza conoscere i dettagli delle librerie AWT/Swing, ma ha lo scopo di permettere al programmatore di GUI una più rapida prototipazione e non lo solleva affatto dalla conoscenza delle librerie Java.

Anzi, spesso gli impone di sapere bene cosa sta andando a fare perchè per interfacce un po' più complesse della norma è neccessario integrare/affiancare il codice prodotto in automatico da Matisse con del codice ad hoc gestito a mano.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 21:51   #12
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
Rinnovo i miei ringraziamenti, ma ancora non ci sono...
Vi ho detto che sono niubbo, perchè sono completamente a digiuno di Java. Però con un po' di buona volontà ho scritto questo:
Codice:
package mastermind;
import java.awt.event.*;
import javax.swing.JLabel;

public class riga {

    JLabel[] elemento = new JLabel[4];

    public riga() {
        for (int y = 0; y < 4; y++) {
            elemento[y] = new JLabel();
            elemento[y].addMouseListener(new Ascoltatore());
            elemento[y].setIcon(new javax.swing.ImageIcon((getClass().getResource("/immagini/nero.jpg"))));
            elemento[y].setLocation(50, 50); //50 e 50 sono valori messi lì a casaccio :p
        }
    }
   
    public class Ascoltatore implements MouseListener
{

        public void mouseClicked(MouseEvent e, int k) {
            elemento[k].setBackground(new java.awt.Color(50, 50, 50));
        }

        public void mousePressed(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        public void mouseReleased(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        public void mouseEntered(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        public void mouseExited(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

        public void mouseClicked(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }

    }
}
Mi sembra di essere ad un buon punto: posso fare eseguire azioni ai miei oggetti che compongono l'array, ad esempio. Però non riesco a fare apparire il tutto insieme al resto dell'interfaccia che già appare di suo, perchè l'ho costruita col GUI editor. In più se mi sposto dal file "riga" al file "interfaccia" e provo a richiamare un oggetto di tipo riga, me lo fa fare, ma poi se invoco un metodo dell'oggetto appena creato fa casini di questo tipo:
Codice:
...
    riga row=new riga();
    row[0]. //la parte dopo il punto sparisce automaGicamente 

    @Override
    public void setBackground(Color c) {
        super.setBackground(c);
    }
...
Attendo fiducioso un'ulteriore spintarella.
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2008, 09:52   #13
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Però non riesco a fare apparire il tutto insieme al resto dell'interfaccia che già appare di suo...
Questo perchè con il codice che hai postato tu hai creato il tuo array di JLabel, ma non le hai aggiunte ad un Container.

Detta in parole povere, in AWT ogni "oggetto grafico" è un Component.
Alcuni Component sono anche Container, cioè possono contenere al loro interno altri Component.

Nel tuo caso per esempio, le JLabel sono dei Component che tu hai creato; ora devi "inserirle" in un Container.

Tipicamente i componenti di un JFrame (suppongo tu stia usando un JFrame come top level container) vengono inseriti nel ContentPane che ha all'interno (diciamo l'area client della finestra, anche se non è proprio una definizione esatta).
Ogni Container espone un metodo pubblico del tipo .add(Component...) che permette di inserire il Component passato in ingresso nel Container.

Quindi nel tuo caso sarà il JFrame il tuo container (posto che non ci hai prima aggiunto dentro un JPanel).


La faccenda qui te l'ho sintetizzata tantissimo, ti ripeto e invito a spendere 3-4 orette sul sito della Sun a consultare il Javadocs del package java.awt e javax.swing mentre studi il tutorial su Awt i Component.

Se vuoi tutorial specifici per componenti li trovi sempre in quel sito.


P.S.: per il posizionamento delle JLabel ti ho detto una castroneria: non usare setLocation() (che tipicamente di usa per posizionare finestre), quando avrai aggiunto col metodo .add() le JLabel nel container il LayoutManager associato a quel container provvederà lui a posizionare i componenti al suo interno.
Quindi è necessario che tu conosca almeno un po' i LayoutManager...

Qui del materiale su come si usare i componenti di Swing.
Qua la pagina dei Java tutorials
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 27-06-2008 alle 09:55.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2008, 10:57   #14
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
Avevo già visitato i due link, comunque grazie!
Forse mi ero espresso male, quello che non riuscivo a fare era: tasto destro su un JPanel creato col GUI editor, "Customize code", ed aggiungere come post-adding code due righe del tipo:
Codice:
for (int y = 0; y < 4; y++)
    Pannello1.add(elemento[y]);
Come vedi tutto si è risolto per il meglio, anche (anzi, soprattutto) grazie a te. A buon rendere!

PS: Mi stavo chiedendo, già che ci sono, se si può creare un unico mouseListener per l'array, al quale passare anche l'indice dell'array. In questo modo potrei definire una sola volta le azioni da compiere. Ad esempio, qualcosa del genere:
Codice:
for (y = 0; y < 4; y++)
{Riga.add(row[y]);
row[y].addMouseListener(new Ascoltatore());
}
...
public class Ascoltatore implements MouseListener
{
        public void mouseClicked(MouseEvent e) {
            row[y].setBackground(250, 250, 250);
        }
}
Ma temo sia impossibile.
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x

Ultima modifica di riva.dani : 29-06-2008 alle 11:53.
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2008, 12:27   #15
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
se ho capito bene; te vorresti screare un solo ascoltatore di eventi che faccia lo stesso lavoro a tutti?
potresti passare come parametro alla classe Ascoltatore il numero della colonna, con un codice tipo questo
Codice:
for(int i=0;i<4;i++){
    Ascoltatore a=new Ascoltatore(i);
    row[y].addMouseListener(a);
}
//...

class Ascoltatore implemets MouseListener{
   private int row=0;
   public Ascoltatore(int y){
      this.row=y;
   }
//TODO: il tuo codice

}
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2008, 13:21   #16
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
se ho capito bene; te vorresti screare un solo ascoltatore di eventi che faccia lo stesso lavoro a tutti?
potresti passare come parametro alla classe Ascoltatore il numero della colonna, con un codice tipo questo
Codice:
for(int i=0;i<4;i++){
    Ascoltatore a=new Ascoltatore(i);
    row[y].addMouseListener(a);
}
//...

class Ascoltatore implemets MouseListener{
   private int row=0;
   public Ascoltatore(int y){
      this.row=y;
   }
//TODO: il tuo codice

}
In realtà:
Codice:
...
class Ascoltatore implemets MouseListener{
   public int row=0;
   public Ascoltatore(int y){
      this.row=y;
   }
Così funziona!!!!!! Miticissimo, grazie mille!!!!!!!!
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
riva.dani è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2008, 14:23   #17
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
Quote:
Originariamente inviato da riva.dani Guarda i messaggi
Così funziona!!!!!! Miticissimo, grazie mille!!!!!!!!
non se dici a me; comunque grazie per avermi fatto notare l'errore
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Riceve il reso di una RTX 5090 da 4.000 ...
Gli utenti con GPU Intel non possono gio...
Un agente AI visita 5.000 siti dove un u...
IA, virtualizzazione e cyber resilienza:...
AMD aggiorna FSR alla versione 4.1. Migl...
Nuovi suffissi internet 2026: per la sec...
Claudy Day: tre vulnerabilità in ...
Record di efficienza per i pannelli sola...
SteamOS 3.8 è disponibile in ante...
Opel in Formula E dalla Stagione 13: con...
Windows 11 26H1: ecco le scadenze esatte...
Arriva HiSecEngine USG6000G, la nuova ga...
Xiaomi SU7 2026 ufficiale con 902 km di ...
Il tuo vecchio iPhone potrebbe essere gi...
Già disponibile un primo aggiorna...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v