[Java] ShowMessageDialog non funge

Ruggiero_Sguera

Nuovo Utente
6 Mag 2017
1
0
1
23
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
 

ottofonsuppost

Utente Attivo
10 Mag 2016
170
13
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:

ottofonsuppost

Utente Attivo
10 Mag 2016
170
13
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:
Discussioni simili
Autore Titolo Forum Risposte Data
F NetBeans problema creazione progetto Java Windows e Software 0
Z [java] bufferizzare stream audio da mic Java 1
L java + Api di google Javascript 1
A [Cerchiamo] [Retribuito/a] "Java Solution Architect" Offerte e Richieste di Lavoro e/o Collaborazione 1
F Script java elenco alfabetico non funziona Javascript 3
C Serializzazione in java Java 1
M AIUTO ESERCIZIO JAVA Javascript 1
M Ripasso Java Offerte e Richieste di Lavoro e/o Collaborazione 0
F [OFFRO - RETRIBUITO] Sviluppatori JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
L leggere RGB di un pixel dello schermo in java Java 1
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
F Aiuto java script Javascript 2
T [Java] tipi generici con esempio pratico Java 1
J File audio in java Java 0
V [JAVA] come integrare un software scritto in java su una pagina web? Java 4
C Java client / server Java 0
F [OFFRO][RETRIBUITO] PROGRAMMATORE JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
C [Java] testare un metodo con Junit Java 1
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
S [OFFRO] Debug delle tue applicazioni Java Offerte e Richieste di Lavoro e/o Collaborazione 1
L [Java] Aggiungere elementi ad array JSON Java 0
B [Java] Paginazione in risposta HTTP Java 0
A [Java]Date diminuite di un giorno su db MySQL Java 0
K [Java] aiuto switch case Java 1
P [Java] limite destro di un JFrame Java 5
D [Java] far partire JProgressBar all'apertura di un JFrame Java 1
N [java con eclipse]metodo ricorsivo che accetta in ingresso un char e restituisce un int Java 0
A Verifica validità data in Java Java 2
L [Java] Errore json conversione Java 0
Drago73 [Java] leggere/scrivere txt server Java 0
M [Javascript] Java card Java 0
serena.cerutti posizioni aperte: PhP, Java, .Net Offerte e Richieste di Lavoro e/o Collaborazione 0
N [Java]problema jasper report dopo compilazione file .jar Java 0
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
N [Java] jbutton con funzioni Java 2
M [java] esercizio lunghezza array di stringhe Java 0
A [java] problema esercizio Java 0
filograndipad2 Esempi chiari e completi sul funzionamento degli eventi in Java Java 1
Raziel84 [Java] Combinazione elementi matrice Java 0
A [java] problema esercizio array Java 5
L da php a popup java PHP 2
W Piccolo sistema per gestire alcune periferiche, Java o altro linguaggio? Java 8
S Cerco programmatore java Offerte e Richieste di Lavoro e/o Collaborazione 0
Z [Java] Grassetto assente su font incorporato nel pacchetto jar Java 0
O [Java] Lettura da JSON File Java 0
Z [Java] Caratteri distorti e spaziature errate nelle stampe di componenti swing Java 0
W Aiutino per compilare o eseguire un App Java Java 0
S [JAVA] Geocoding Java Java 0
Andy56 Parametri funzioni in Java Java 0
B [Java] Stringhe binarie Java 0

Discussioni simili