Hey guys, I have a program similar to X's and O's. But I need to put the "CheckWin" method in another class and call it from there. Im having no luck, can anyone help?

(CHECKWIN PART AT VERY BOTTOM)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;





public class Main implements ActionListener {




     public static void main(String[] args) 
        {
        new Main();// Calling the class construtor.
        }//end main







    //Setting up ALL the variables
    JFrame window = new JFrame("Angels and Demons");

    //menubar
    JMenuBar mnuMain = new JMenuBar();
    JMenuItem mnuNewGame = new JMenuItem("New Game"),
    mnuInstruction = new JMenuItem("Instructions"),
    mnuExit = new JMenuItem("Exit"),
    mnuAbout = new JMenuItem("About");

    //Buttons 
    JButton btn1v1 = new JButton("Player vs Player"),
    btn1vCPU = new JButton("Player vs CPU"),
    btnBack = new JButton("<--back");
    JButton btnEmpty[] = new JButton[17];

    //Panel
    JPanel pnlNewGame = new JPanel(),
    pnlNorth = new JPanel(),
    pnlSouth = new JPanel(),
    pnlTop = new JPanel(),
    pnlBottom = new JPanel(),
    pnlPlayingField = new JPanel();
    JLabel lblTitle = new JLabel("Angels and Demons");


    JTextArea txtMessage = new JTextArea();



    final int winCombo[][] = new int[][] {
    {1, 2, 3, 4}, {5 ,6 ,7, 8}, {9, 10, 11, 12},
    {13, 14, 15, 16}, {1, 5, 9, 13}, {2, 6, 10, 14},
    {3, 7, 11, 15}, {4, 8, 12, 16}, {1, 6, 11, 16}, {4, 7, 10, 13}
    /*Horizontal Wins*/ /*Vertical Wins*/ /*Diagonal Wins*/
    };




    final int X = 450, Y = 300, color = 200;
    boolean inGame = false;
    boolean win = false;
    boolean btnEmptyClicked = false;
    String message;
    int turn = 1;
    int wonNumber1 = 1, wonNumber2 = 1, wonNumber3 = 1, wonNumber4 = 1;





        //--------------------------------CONSTRUCTOR---------------------------------------------------------
        public Main() 
        { //Setting game properties and layout and sytle...
        //Setting window properties:
        window.setSize(X, Y);
        window.setLocation(450, 260);
        window.setResizable(false);
        window.setLayout(new BorderLayout());
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Setting Panel layouts and properties
        pnlNewGame.setLayout(new GridLayout(2, 1, 2, 10));
        pnlNorth.setLayout(new FlowLayout(FlowLayout.CENTER));
        pnlSouth.setLayout(new FlowLayout(FlowLayout.CENTER));

        pnlNorth.setBackground(new Color(color-20, color-20, color-20));
        pnlSouth.setBackground(new Color(color, color, color));

        pnlTop.setBackground(new Color(color, color, color));
        pnlBottom.setBackground(new Color(color, color, color));

        pnlTop.setLayout(new FlowLayout(FlowLayout.CENTER));
        pnlBottom.setLayout(new FlowLayout(FlowLayout.CENTER));
        pnlNewGame.setBackground(Color.blue);

        //Adding menu items to menu bar
        mnuMain.add(mnuNewGame);
        mnuMain.add(mnuInstruction);
        mnuMain.add(mnuAbout);
        mnuMain.add(mnuExit);//---->Menu Bar Complete

        //Adding buttons to NewGame panel
        pnlNewGame.add(btn1v1);
        pnlNewGame.add(btn1vCPU);

        //Adding Action Listener to all the Buttons and Menu Items
        mnuNewGame.addActionListener(this);
        mnuExit.addActionListener(this);
        mnuInstruction.addActionListener(this);
        mnuAbout.addActionListener(this);
        btn1v1.addActionListener(this);
        btn1vCPU.addActionListener(this);
        btnBack.addActionListener(this);

        //Setting up the playing field
        pnlPlayingField.setLayout(new GridLayout(4, 4)); //4x4 grid
        pnlPlayingField.setBackground(Color.white);
            for(int i=1; i<=16; i++)
            {
            btnEmpty[i] = new JButton();
            btnEmpty[i].setBackground(new Color(220, 220, 220));
            btnEmpty[i].addActionListener(this);
            pnlPlayingField.add(btnEmpty[i]);
            }


        //Adding everything needed to pnlNorth and pnlSouth
        pnlNorth.add(mnuMain);
        pnlSouth.add(lblTitle);

        //Adding to window and Showing window
        window.add(pnlNorth, BorderLayout.NORTH);
        window.add(pnlSouth, BorderLayout.CENTER);
        window.setVisible(true);
        }
        //----------------------------------END CONSTRUCTOR------------------------------------------------------













//-------------------START OF ACTION PERFORMED CLASS-------------------------//
        public void actionPerformed(ActionEvent click)
        {
        Object source = click.getSource();

         for(int i=1; i<=16; i++)
         {
            if(source == btnEmpty[i] && turn < 17) 
            {
            btnEmptyClicked = true;

            //this means that angel will go first (player1) then demon (player2)
            if(!(turn % 2 == 0))
            btnEmpty[i].setText("Angel");
            else
            btnEmpty[i].setText("Demon");
            btnEmpty[i].setEnabled(false);
            pnlPlayingField.requestFocus();
            turn++;
            }//end IF
        }//end loop



        if(btnEmptyClicked)
        {
            checkWin();
            btnEmptyClicked = false;
        }//emd IF



        if(source == mnuNewGame)
        {
            clearPanelSouth();
            pnlSouth.setLayout(new GridLayout(2, 1, 2, 5));
            pnlTop.add(pnlNewGame);
            pnlBottom.add(btnBack);
            pnlSouth.add(pnlTop);
            pnlSouth.add(pnlBottom);
        }







        else if(source == btn1v1) 
        {
            if(inGame)
            {
            int option = JOptionPane.showConfirmDialog(null, "If you start a new game," +
            "your current game will be lost..." + "\n" +
            "Are you sure you want to continue?",
            "Quit Game?" ,JOptionPane.YES_NO_OPTION);
                if(option == JOptionPane.YES_OPTION)
                {
                inGame = false;
                }//END INNER INNER IF
            }//END INNER IF


        if(!inGame) 
        {
        btnEmpty[wonNumber1].setBackground(new Color(220, 220, 220));
        btnEmpty[wonNumber2].setBackground(new Color(220, 220, 220));
        btnEmpty[wonNumber3].setBackground(new Color(220, 220, 220));
        btnEmpty[wonNumber4].setBackground(new Color(220, 220, 220));
        turn = 1;


            for(int i=1; i<17; i++) 
            {
            btnEmpty[i].setText("");
            btnEmpty[i].setEnabled(true);
            }//end loop

        win = false;
        showGame();

        }
        }












        //If the user clicks on the button to play against the computer
        else if(source == btn1vCPU)
        {

          //HAVENT TACKELD THIS YET


        }





















        else if(source == mnuExit)
        {
        int option = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit?",
        "Exit Game" ,JOptionPane.YES_NO_OPTION);
        if(option == JOptionPane.YES_OPTION)
        System.exit(0);
        }


        else if(source == mnuInstruction || source == mnuAbout)
        {
        clearPanelSouth();
        String message = "";
        txtMessage.setBackground(new Color(color, color, color));

                if(source == mnuInstruction)
                {
                message = "Instructions:\n\n" +
                "Your goal is to be the first player to get 4 pieces in a\n" +
                ". (horizontally or vertically)\n" +
                        "\n";
                } 

                else {
                message = "About:\n\n" +
                 ;


                }//END NESTED IF


        txtMessage.setEditable(false);
        txtMessage.setText(message);
        pnlSouth.setLayout(new GridLayout(2, 1, 2, 5));
        pnlTop.add(txtMessage);
        pnlBottom.add(btnBack);
        pnlSouth.add(pnlTop);
        pnlSouth.add(pnlBottom);
        }

        else if(source == btnBack)
        {
            if(inGame)
            showGame();
            else {
            clearPanelSouth();
            pnlSouth.setLayout(new FlowLayout(FlowLayout.CENTER));
            pnlNorth.setVisible(true);
            pnlSouth.add(lblTitle);
            }//end nested IF
        }
        pnlSouth.setVisible(false);
        pnlSouth.setVisible(true);
        }//--------------------------END OF ACTION PERFORMED CLASS-------------------------//

/*
----------------------------------
Start of all the other methods. |
----------------------------------
*/
        public void showGame()
        { // Shows the Playing Field
        // *IMPORTANT*- Does not start out brand new (meaning just shows what it had before)

            clearPanelSouth();
            inGame = true;


            pnlSouth.setLayout(new BorderLayout());
            pnlSouth.add(pnlPlayingField, BorderLayout.CENTER);
            pnlPlayingField.requestFocus();

        }






















    public void checkWin() { // checks if there are 4 symbols in a row vertically, diagonally, or horizontally.
    // then shows a message and disables buttons.

        for(int i=0; i<8; i++) {

        if
        (
        !btnEmpty[winCombo[i][0]].getText().equals("") &&

        btnEmpty[winCombo[i][0]].getText().equals(btnEmpty[winCombo[i][1]].getText()) &&

        btnEmpty[winCombo[i][1]].getText().equals(btnEmpty[winCombo[i][2]].getText()) &&

        btnEmpty[winCombo[i][2]].getText().equals(btnEmpty[winCombo[i][3]].getText())       
        )

/*
The way this checks the if someone won is:
First: it checks if the btnEmpty[x] is not equal to an empty string- x being the array number
inside the multi-dementional array winCombo[checks inside each of the 7 sets][the first number]
Secong: it checks if btnEmpty[x] is equal to btnEmpty[y]- x being winCombo[each set][the first number]
y being winCombo[each set the same as x][the second number] (So basically checks if the first and
second number in each set is equal to each other)
Third: it checks if btnEmtpy[y] is eual to btnEmpty[z]- y being the same y as last time and z being
winCombo[each set as y][the third number]
Conclusion: So basically it checks if it is equal to the btnEmpty is equal to each set of numbers
*/

      {
        win = true;
        wonNumber1 = winCombo[i][0];
        wonNumber2 = winCombo[i][1];
        wonNumber3 = winCombo[i][2];
        wonNumber4 = winCombo[i][3];
        btnEmpty[wonNumber1].setBackground(Color.green);
        btnEmpty[wonNumber2].setBackground(Color.green);
        btnEmpty[wonNumber3].setBackground(Color.green);
        btnEmpty[wonNumber4].setBackground(Color.green);

        break;
        }
        }
            if(win || (!win && turn>16)) 
            {
                if(win) 
                {
                    if(turn % 2 == 0)
                    message = "Angel has won!";
                    else
                    message = "Demon has won!";
                    win = false;
                 }
                else if(!win && turn>16)
                {
                message = "Both players have tied!\nBetter luck next time.\n\nClick on 'New Game' to start again";
                }//end inner IF


                JOptionPane.showMessageDialog(null, message);
                for(int i=1; i<=16; i++) 
                {
                btnEmpty[i].setEnabled(false);
                }
          }//end outer if
        }

        public void clearPanelSouth() { //Removes all the possible panels
        //that pnlSouth, pnlTop, pnlBottom
        //could have.
        pnlSouth.remove(lblTitle);
        pnlSouth.remove(pnlTop);
        pnlSouth.remove(pnlBottom);
        pnlSouth.remove(pnlPlayingField);
        pnlTop.remove(pnlNewGame);
        pnlTop.remove(txtMessage);
        pnlBottom.remove(btnBack);
        }



}//end class

you posted an awful lot of code, but it would be more helpful if you posted a clear description of what it is you are trying to do and what it is that's going wrong.

calling a method from another class is exactly the same as calling a method from the same class, with this difference:
if it's an instance method, it has to be called through an instance of that class.
if it's a static method, you call it through the class itself. since I think it's an instance method: instantiate the second class and use the instance.

This article has been dead for over six months. Start a new discussion instead.