Java - Create Glass Bridge Game In Java

How To Make The Glass Bridge Game From Squid Game In Java NetBeans

Java - Create Glass Bridge Game In Java


In this Java Tutorial we will see How to Make The Glass Stepping Stones Game or the glass bridge game From Squid Game Using JPanels and Jlabels In Java NetBeans .

The Game Rules:
the player have to hop across a bridge of glasses with some glasses that breack easily.






Project Source Code:

   
    // create a black border (it's actually yellow)
    Border black_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.yellow);
    
    // get the images paths
    String footsteps = "\\/images/foot-steps.png";
    String nosteps = "\\/images/no-steps.png";
    String cracks = "\\/images/cracks.png";
    
    // jpanel component
    Component[] comp1;
    Component[] comp2;
    
    Random random = new Random();
    String randomImage;
    
    JLabel[][] labels;
    String[][] imagesOrder = new String[6][2];
    ArrayList<String> list = new ArrayList<>();
    
    int counter = 0;
    boolean won = true;


    
        // center this form
        this.setLocationRelativeTo(null);
        
        // set borders
        jPanel_Start.setBorder(black_border);
        jPanel_Finish.setBorder(black_border);
        jLabel_PlayerStart.setBorder(black_border);
        jLabel_PlayerFinish.setBorder(black_border);
        
        // set image
        displayImage(footsteps, jLabel_PlayerStart);
        
        // add jlabels to the labels table
        labels = new JLabel[][]{{jLabel_1_1,jLabel_1_2},{jLabel_2_1,jLabel_2_2},
                                {jLabel_3_1,jLabel_3_2},{jLabel_4_1,jLabel_4_2},
                                {jLabel_5_1,jLabel_5_2},{jLabel_6_1,jLabel_6_2}};
        
        // disable all labels
        for(JLabel[] lbls : labels )
        {
            lbls[0].setEnabled(false);
            lbls[1].setEnabled(false);
        }
        
        // add images to the list
        list.add(footsteps);
        list.add(cracks);
        
        // get component from jpanels
        comp1 = jPanel2.getComponents();
        comp2 = jPanel3.getComponents();
        
        // populate table with images in random order
        randomImages();
        
        // add action to jlabels
        addAction();


    // functions we are gonna use
    
    // create a function to enable jlabels
    public void enableLabels(int index)
    {
        if(index <= labels.length-1 )
        {
            JLabel[] lbls = labels[index];
            lbls[0].setEnabled(true);
            lbls[1].setEnabled(true);
        }
    }
    
    // create a function to get random images
    public void randomImages()
    {
        for(int i = 0; i < labels.length; i++)
        {
            // get random images
            randomImage = list.get(random.nextInt(list.size()));
            imagesOrder[i][0] = randomImage;
            
            // get a different image
            if(randomImage.equals(footsteps))
            {
              imagesOrder[i][1] = cracks;
            }
            else
            {
                imagesOrder[i][1] = footsteps;
            }
            
            System.out.println(imagesOrder[i][1]);
            System.out.println(imagesOrder[i][0]);
            System.out.println("--------------");
        }
    }


    // a function to add action to jlabels when we click
    public void addAction()
    {
        enableLabels(counter);
        // jpanel2
        for(Component comp : comp1)
        {
            if(comp instanceof JLabel)
            {
                JLabel label = (JLabel) comp;
                label.addMouseListener(new java.awt.event.MouseAdapter() {
                    @Override
                    public void mouseClicked(java.awt.event.MouseEvent evt)
                    {
                        if(label.isEnabled())
                        {
                           displayImage(imagesOrder[counter][1], label);
                           if(imagesOrder[counter][1].equals(cracks))
                           {
                               won = false;
                           }
                           // disable jlabel 
                           label.setEnabled(false);
                           JLabel label = (JLabel) comp2[counter];
                           label.setEnabled(false);
                           if(counter == imagesOrder.length-1 && won == true)
                           {
                               displayImage(footsteps, jLabel_PlayerFinish);
                               jLabel_message.setText("You've Won :)");
                           }
                           else if(won == false)
                           {
                               jLabel_message.setText("You've Lost :(");
                           }
                           counter++; 
                           enableLabels(counter);
                        }
                        
                    }
                    
                });
                
            }
        }
        
        // jpanel3
        for(Component comp : comp2)
        {
            if(comp instanceof JLabel)
            {
                JLabel label = (JLabel) comp;
                label.addMouseListener(new java.awt.event.MouseAdapter() {
                    @Override
                    public void mouseClicked(java.awt.event.MouseEvent evt)
                    {
                        if(label.isEnabled())
                        {
                           displayImage(imagesOrder[counter][0], label);
                           if(imagesOrder[counter][0].equals(cracks))
                           {
                               won = false;
                           }
                           // disable jlabel 
                           label.setEnabled(false);
                           JLabel label = (JLabel) comp1[counter];
                           label.setEnabled(false);
                           
                           if(counter == imagesOrder.length-1 && won == true)
                           {
                               displayImage(footsteps, jLabel_PlayerFinish);
                                jLabel_message.setText("You've Won :)");
                           }
                           else if(won == false)
                           {
                               jLabel_message.setText("You've Lost :(");
                           }
                           counter++;
                           enableLabels(counter);
                        }
                        
                    }
                });
                
            }
        }
        
    }
    
    // a function to dispaly image in jlabel
    public void displayImage(String imgPath, JLabel label)
    {
        // get the image
        ImageIcon imgIco = new ImageIcon(getClass().getResource(imgPath));
        
        // make the image fit the given jlabel
        Image image = imgIco.getImage().getScaledInstance(label.getWidth(), label.getHeight(), Image.SCALE_SMOOTH);
        
       // set the image into the jlabel
       label.setIcon(new ImageIcon(image));
    }


   // button play again
    private void jButton_PlayAgain_ActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // reset everything
        // populate table with images in random order
        randomImages();
        // remove images from the jlabels
        for(JLabel[] lbls : labels)
        {
            lbls[0].setIcon(null);
            lbls[1].setIcon(null);
        }
        jLabel_PlayerFinish.setIcon(null);
        counter = 0;
        won = true;
        jLabel_message.setText("");
        enableLabels(counter);
    } 

    


////// OUTPUT : 

Glass Bridge Game

Glass Stepping Stones In Java

Glass Bridge Game In Java




download the source code



More Java Projects:





Java Update MySQL Data Using JTable

How To Update All MySQL DataBase Values Using JTable In Java NetBeans

update mysql data using jtable in java



In this Java Tutorial we will see How To UPDATE DataBase Data With JTable Rows Values Using For Loop And addBatch Function On Button Click In Java NetBeans .




Project Source Code:


// function to get the connection
    public Connection getConnection()
    {
         try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException ex) {
             System.out.println(ex.getMessage());
        }
        
        Connection con = null;
        
        try {
            con = DriverManager.getConnection("jdbc:mysql://localhost/s_t_d", "root", "");
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
        return con;
    }

// function to display data from mysql to Jtable 
    public void fillTable(){
        Connection con = getConnection();
        Statement ps;
        ResultSet rs;
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
        try {
            ps = con.createStatement();
            rs = ps.executeQuery("SELECT * FROM `student`");

            while(rs.next()){// Id`, `FullName`, `Address`, `BirthDate
                Object[] row = new Object[jTable1.getColumnCount()];
                row[0] = rs.getInt("Id");
                row[1] = rs.getString("FullName");
                row[2] = rs.getString("Address");
                row[3] = rs.getString("BirthDate");
                model.addRow(row);
            }
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
    }


// button update
private void jButtonUPdateAllActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        Connection con = getConnection();
        Statement st;
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
        
        try {
            st = con.createStatement();
            for(int i = 0; i < model.getRowCount(); i++){
                
                int id = Integer.valueOf(model.getValueAt(i, 0).toString());
                String fn = model.getValueAt(i,1).toString();
                String adr = model.getValueAt(i,2).toString();
                String bdate = model.getValueAt(i,3).toString();
                
                String updateQuery = "UPDATE `student` SET `FullName`='"+fn+"',`Address`='"+adr+"',`BirthDate`='"+bdate+"' WHERE `Id` = " +id;
              
                st.addBatch(updateQuery);
            }
            
            int[] updatedRow = st.executeBatch();
            System.out.println(updatedRow.length);
            
        } catch (SQLException ex) {
            Logger.getLogger(Update_All_MySQL_Data_Using_JTable.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }

OutPut:

Editing mysql data using jtable using java




VB.Net Import And Export Text File To DataGridView

How To Get And Set DataGridView Data To Txt File Text Using Visual Basic .Net

datagridview import and export to a text file in vb.net



In this VB.NET Tutorial we will see How To Import Records From A Text File And Display The Values Into DataGridView, and Export DataGridView Rows Data To a Txt File Using DataTable, TextWriter, StreamWriter, ReadAllLines In Visual Basic.Net   Programming Language And Visual  Studio Editor.




Project Source Code:


Imports System.IO

Public Class TXT_IMPORT_EXPORT_DGV

    Dim table1 As New DataTable()
    Dim table2 As New DataTable()

    Private Sub TXT_IMPORT_EXPORT_DGV_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        ' add columns to your datatable
        ' with the name of the columns and their type

        table1.Columns.Add("Id", Type.GetType("System.Int32"))
        table1.Columns.Add("First Name", Type.GetType("System.String"))
        table1.Columns.Add("Last Name", Type.GetType("System.String"))
        table1.Columns.Add("Age", Type.GetType("System.Int32"))

        ' add rows to datatable with some data
        table1.Rows.Add(1, "AAAA", "BBBB", 21)
        table1.Rows.Add(2, "CCCC", "DDDD", 33)
        table1.Rows.Add(3, "EEEE", "FFFF", 53)
        table1.Rows.Add(4, "GGGG", "HHHH", 19)
        table1.Rows.Add(5, "MMMM", "NNNN", 36)
        table1.Rows.Add(6, "RRRR", "SSSS", 63)

        ' now set the datagridview datasource equals to your datatable name
        DataGridView1.DataSource = table1


        table2.Columns.Add("Id", Type.GetType("System.Int32"))
        table2.Columns.Add("First Name", Type.GetType("System.String"))
        table2.Columns.Add("Last Name", Type.GetType("System.String"))
        table2.Columns.Add("Age", Type.GetType("System.Int32"))


        DataGridView2.DataSource = table2

    End Sub

' button export
    Private Sub ButtonExport_Click(sender As Object, e As EventArgs) Handles ButtonExport.Click

        Dim writer As New StreamWriter("C:\Users\1BestCsharp\Desktop\Table2.txt")

        For i As Integer = 0 To DataGridView1.Rows.Count - 2 Step +1

            For j As Integer = 0 To DataGridView1.Columns.Count - 1 Step +1

                ' if last column
                If j = DataGridView1.Columns.Count - 1 Then
                    writer.Write(vbTab & DataGridView1.Rows(i).Cells(j).Value.ToString())
                Else
                    writer.Write(vbTab & DataGridView1.Rows(i).Cells(j).Value.ToString() & vbTab & "|")
                End If


            Next j

            writer.WriteLine("")

        Next i

        writer.Close()
        MessageBox.Show("Data Exported")

    End Sub

    ' button import
    Private Sub ButtonImport_Click(sender As Object, e As EventArgs) Handles ButtonImport.Click

        Dim lines() As String
        Dim vals() As String

        lines = File.ReadAllLines("C:\Users\1BestCsharp\Desktop\table2.txt")

        For i As Integer = 0 To lines.Length - 1 Step +1

            vals = lines(i).ToString().Split("|")
            Dim row(vals.Length - 1) As String

            For j As Integer = 0 To vals.Length - 1 Step +1

                row(j) = vals(j).Trim()

            Next j

            table2.Rows.Add(row)

        Next i

    End Sub
End Class


OutPut:

import and export txt file text to datagridview using vb.net