[Java] ShowMessageDialog non funge

Discussione in 'Java' iniziata da Ruggiero_Sguera, 6 Maggio 2017.

Tag (etichette):
  1. Ruggiero_Sguera

    Ruggiero_Sguera Nuovo Utente

    Registrato:
    6 Maggio 2017
    Messaggi:
    1
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao ragazzi, ho un problema con il mio programma che simula il TRIS (senza IA).
    Il problema in se è il JOptionPane.showMessageDialog che non funge quando una condizione viene verificata ed è "vera" ed ho anche provato a mettere this, null e frame ai parametri, ma niente da fare.
    Queste condizioni sono contenute nel metodo condizioni() con tutte le combinazioni che si possono creare nel TRIS (orizzontale, verticale, diagonale). Spero tantissimo mi possiate aiutare poiché questo sarà il mio progetto da portare per la maturità.
    PS Ho dovuto "accorciare" il codice per questioni di spazio

    Codice:
    package Tris;
    
    import java.awt.EventQueue;
    import javax.swing.JFrame;
    import java.awt.BorderLayout;
    import javax.swing.JPanel;
    import javax.swing.border.LineBorder;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.awt.event.ActionListener;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import javax.swing.SwingConstants;
    import javax.swing.JTextField;
    
    public class Tris_1 {
    
        private JFrame frame;
        private String inizio = "X";
        private int contX = 0;
        private int contO = 0;
        private JLabel bottone1;
        private JLabel bottone2;
        private JLabel bottone3;
        private JLabel bottone4;
        private JLabel bottone5;
        private JLabel bottone6;
        private JLabel bottone7;
        private JLabel bottone8;
        private JLabel bottone9;
        private JTextField txtContX;
        private JTextField txtContO;
        
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Tris_1 window = new Tris_1();
                        window.frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the application.
         */
        public Tris_1()
        {
            initialize();
            
        }
     
        private void Condizioni() //le varie combinazioni
        {
            String b1 = bottone1.getText();
            String b2 = bottone2.getText();
            String b3 = bottone3.getText();
            String b4 = bottone4.getText();
            String b5 = bottone5.getText();
            String b6 = bottone6.getText();
            String b7 = bottone7.getText();
            String b8 = bottone8.getText();
            String b9 = bottone9.getText();
            
        //COMBINAZIONI X - ORIZZONTALI
            
        if (b1 == ("X") && b2 == ("X") && b3 == ("X"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contX++;
            Punteggio();
           
    //OUTPUT NON FUNZIONANTE IN TUTTE LE CONDIZIONI
       
        }
        
        if (b4 == ("X") && b5 == ("X") && b6 == ("X"))
        {
        
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contX++;
            Punteggio();     
        }
        if (b7 == ("X") && b8 == ("X") && b9 == ("X"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contX++;
            Punteggio();
            
        }
        
        //COMBINAZIONI X - VERTICALI
        
        if (b1 == ("X") && b4 == ("X") && b7 == ("X"))
        {
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE);
            contX++;
            Punteggio();
            
        }
        
        if (b2 == ("X") && b5 == ("X") && b8 == ("X"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contX++;
            Punteggio();
            
        }
        
        if (b3 == ("X") && b6 == ("X") && b9 == ("X"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contX++;
            Punteggio();
            
        }
        
        //COMBINAZIONI X - DIAGONALI
        
        if (b1 == ("X") && b5 == ("X") && b9 == ("X"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contX++;
            Punteggio();
            
        }
        
        if (b3 == ("X") && b5 == ("X") && b7 == ("X"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contX++;
            Punteggio();
            
        }
        
        //COMBINAZIONI O - ORIZZONTALI
        
        if (b1 == ("O") && b2 == ("O") && b3 == ("O"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        if (b4 == ("O") && b5 == ("O") && b6 == ("O"))
        {
        
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        if (b7 == ("O") && b8 == ("O") && b9 == ("O"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        //COMBINAZIONI O - VERTICALI
        
        if (b1 == ("O") && b4 == ("O") && b7 == ("O"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        if (b2 == ("O") && b5 == ("O") && b8 == ("O"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        if (b3 == ("O") && b6 == ("O") && b9 == ("O"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        //COMBINAZIONI O - DIAGONALI
        
        if (b1 == ("O") && b5 == ("O") && b9 == ("O"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog (null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        if (b3 == ("O") && b5 == ("O") && b7 == ("O"))
        {
            
            ImageIcon icon = new ImageIcon("C:\\Users\\ruggiero\\workspace\\Tris_Progetto\\Icone\\vittoria.png");
            JOptionPane.showMessageDialog(null, "Il giocatore X ha vinto!", "Vittoria!",JOptionPane.INFORMATION_MESSAGE, icon);
            contO++;
            Punteggio();
            
        }
        
        
    }
        private void Punteggio()
        {
            txtContX.setText(String.valueOf(contX++));
            txtContO.setText(String.valueOf(contO++));
        }
        private void Scelta()
        {
            if (inizio.equalsIgnoreCase("X"))  //equalsIgnoreCase serve per fare un confronto non case-sensitive (non bada alle minuscole e alle maiuscole)
            {
                    inizio = "O";
            }
                else
                {
                    inizio= "X";           
                }
    
             
     //non ho potute inserire il resto del codice
       
                  
    
     
  2. ottofonsuppost

    ottofonsuppost Utente Attivo

    Registrato:
    10 Maggio 2016
    Messaggi:
    170
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Prima occhiata e prima codificazione inutile: usare * in una libreria che si utilizza. A meno che lo spazio a disposizione non sia insufficiente. 7 messaggi IMPORT per la AWT + 8 per la JAVAX si trasformano da 15 a 2
     
    Ultima modifica: 22 Settembre 2017
  3. ottofonsuppost

    ottofonsuppost Utente Attivo

    Registrato:
    10 Maggio 2016
    Messaggi:
    170
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Seconda occhiata al listato: ogni volta che l'IF risulta vincente, NON SCRIVERE CODICE RIDONDANTE ma chiama un METODO che dice hai vinto, aggiorna il punteggio eccetera.
    Poi prima dell'IF fatti una riga di codice provvisoria per vedere ad esempio cosa contiene b1; può darsi che non stai confrontando una X ma una x che sono cose nettamente diverse...
    if (b1 == ("X") && b2 == ("X")) {if b3 == "X"...... e funziona
     
    Ultima modifica: 22 Settembre 2017
Sto caricando...

Condividi questa Pagina