Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [JAVA] problema passaggio variabili e metodi

    Buongiorno, allora io ho più classi, la principale, chiamata blackjack e le altre che contengono gli actionlistener dei bottoni.

    questo è la mia classe principale:

    codice:
    public class BlackJack extends JFrame{
     int cash;
     int currentBet
    ; String name;
     ArrayList<Card> deck;
     Card[] usersCards;
     Card[] dealersCards ;
     private JButton buttonHit, buttonStay, buttonDeal, buttonCashOut;
     private JPanel userPane, dealerPane, userCardPane;
     JLabel labelMoney; private JLabel labelBet;
     BufferedImage img;
     final int cardWidth;
     final int cardHeight;
     boolean gameOn;
     char[] ans;
    
    .
    .
    .
    public void gameInit() {
     .
     .
     .
    e nelle classi, nello stesso package, devo prendere sia gameOn sia richiamare gameInit(), cosi:

    codice:
    public class Dealer implements ActionListener { 
    public void actionPerformed(ActionEvent ae) { 
    gameOn=true; gameInit();
     }
     }
    ovviamente non funziona perchè non mi trova nel il metodo ne la variabile, come posso fare ad usare cio in tutte e due le classi??

    ciao e grazie in anticipo!!

  2. #2
    nessuno ha delle idee!???

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Quindi i bottoni delle altre classi devono richiamare un metodo situato in una terza classe?
    Perchè non hai messo i bottoni sempre in quella classe?

  4. #4
    per obbligo di progetto, hai qualche idea???

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da galefabio
    per obbligo di progetto, hai qualche idea???
    Non hai risposto alla prima domanda. Quindi do per scontato sia come ho detto io.

    Se hai la classe JFrame con il tuo metodo da chiamare quando viene premuto il bottone in una delle altre classi, non ti resta che passare alle altre classi un riferimento all'oggetto corrente (al costruttore). E quindi chiamare il metodo con quella variabile (che sarebbe l'oggetto della classe che contiene il metodo in questione).

  6. #6
    grazie della risposta,

    allora la mia situazione è cosi:

    classe backjack


    e all'interno c'è:
    boolean gameOn;
    il metodo gameInit();
    e
    buttonDeal.addActionListener(new Dealer());

    che richiama:

    public class Dealer implements ActionListener
    {
    public void actionPerformed(ActionEvent ae)
    {
    gameOn=true;
    gameInit();
    }


    }

    che è nella classe Dealer.
    Ora come faccio ad usare gameOn e richiamare gameInit, da quella clasee?
    sono stato chiaro???

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Diciamo abbastanza chiaro..

    codice:
    buttonDeal.addActionListener(new Dealer(this));
    Al costruttore di Dealer passi un riferimento alla classe del JFrame (che come ho detto prima, è quella che contiene il metodo che ti serve). Quindi, nel costruttore di Dealer avrai:

    codice:
    class Dealer implements ActionListener {
      BlackJack bj;
    
      Dealer(BlackJack bj) {
        this.bj = bj;
      }
    
      public void actionPerformed(ActionEvent ae) {
        bj.gameOn=true; // per questa operazione penso sia meglio mettere un setter in BlackJack
        bj.gameInit();
      }
    }

  8. #8
    che dire.....


    perfetto!!!!

    grazie!!!

  9. #9
    posso chiederti un'altra cosa,

    per inserire un immagine nel progetto, io uso netbeans.

    e faccio

    try {
    img = ImageIO.read(new File("cards.png"));
    } catch (IOException e) {}

    e il file cards.png è nella cartella del progetto, ma ne quando lo avvio ne quando faccio il .jar mi apre il file e mi va nel catch!!! come posso fare, ho letto che i programmi a volte(netbeans e eclipse) lo possono fare, che mi consigli??

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    img è un istanza di?

    Che eccezione ti lancia precisamente? e a che riga?

    Non ho mai utilizzato netbeans..quindi non so come sistemare il problema con lui.

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.