So I feel like I'm a good coder, but that's from my point of view. Can you take a look at my code and give me some tips or criticize me on my code. Or give me some tips or things to add or make things smaller.console class        public class console {    public static void main(String[] args) {//makes the window/consolewindow console=new window();}}window class        import javax.swing.*;import java.awt.*;import java.awt.event.*;//the main terminalpublic class window extends JFrame{//variablesstatic JTextArea window;JTextField input;//main window for commands and shitpublic window(){//super because it issuper(my Java Console);//able to call c.parsefinal findCommand c=new findCommand();//the input is set and shitinput = new JTextField();  input.addActionListener(     new ActionListener(){        public void actionPerformed(ActionEvent event){            input.setText();           c.parse(event.getActionCommand());        }     }  );  add(input, BorderLayout.NORTH);  //this window is set and shit  window = new JTextArea();  window.setEditable(false);  add(new JScrollPane(window));  setSize(300,150);  setVisible(true);}}displayInWindow class        public class displayInWindow {   //display stuff in the window in the window classpublic static void display(String s){   //the JTextArea is the window and one long continues sentence but with \n    window.window.append(s+\n);}}findCommand class    public class findCommand {//finds out what command to runpublic void parse(String s){//deletes spaces before and afters=s.trim();//splits into an arrayString[] cmd=s.split( );//depending on the length of the string array to find how many parameters it hasif(cmd.length==2){    switch(cmd[0].toLowerCase()){    //the print command    case print:displayInWindow.display(cmd[1]);break;    //gets a variable that was set    case get:displayInWindow.display(basicCommands.get(cmd[1]));    }}else if(cmd.length==3){    //switch is set to the first one and set to lowercase    switch(cmd[0].toLowerCase()){    //add    case add:displayInWindow.display(basicCommands.add(cmd[1], cmd[2]));break;    //subtract    case subtract:displayInWindow.display(basicCommands.subtract(cmd[1], cmd[2]));break;    //multiply    case multiply:displayInWindow.display(basicCommands.multiply(cmd[1],cmd[2]));break;    //divide    case divide:displayInWindow.display(basicCommands.divide(cmd[1],cmd[2]));break;    //remainder    case remainder:displayInWindow.display(basicCommands.remainder(cmd[1], cmd[2]));break;    //power    case power:displayInWindow.display(basicCommands.power(cmd[1], cmd[2]));break;    //set    case set:displayInWindow.display(basicCommands.set(cmd[1],cmd[2]));break;    }    //switch is set to the middle parameter and no need to set it to lowercase    switch(cmd[1]){    //adds    case +:displayInWindow.display(basicCommands.add(cmd[0], cmd[2]));break;    //subtracts    case -:displayInWindow.display(basicCommands.subtract(cmd[0], cmd[2]));break;    //multiplys    case *:displayInWindow.display(basicCommands.multiply(cmd[0],cmd[2]));break;    //divides    case /:displayInWindow.display(basicCommands.divide(cmd[0],cmd[2]));break;    //finds the remainder    case %:displayInWindow.display(basicCommands.remainder(cmd[0], cmd[2]));break;    //set    case =:displayInWindow.display(basicCommands.set(cmd[0],cmd[2]));break;    }}else{    if(basicCommands.variables.containsKey(s)){        //if what typed in is a variable        displayInWindow.display(s+ is +basicCommands.variables.get(s) );    }else{        //if it is just random typing it displays it        displayInWindow.display(cmd[0]);    }}}basicCommands classimport java.util.Hashtable;public class basicCommands {//hashtable for set and getpublic static Hashtable variables =new Hashtable();//adds 2 variablespublic static String add(String num1,String num2){    try{        try{            if(num1.contains(.)||num2.contains(.)){                return(num1+ + +num2+ = +Double.toString(Double.parseDouble(num1)+Double.parseDouble(num2)));            }else{                return(num1+ + +num2+ = +Integer.toString(Integer.parseInt(num1)+Integer.parseInt(num2)));            }            }catch(Exception e){                if(variables.get(num1).toString().contains(.)||variables.get(num2).toString().contains(.)){                    return(num1+ + +num2+ = +num2+Double.toString(Double.parseDouble(variables.get(num1).toString())+Double.parseDouble(variables.get(num2).toString())));                }else{                    return(num1+ + +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())+Integer.parseInt(variables.get(num2).toString())));                }            }    }catch(Exception e){        if(variables.containsKey(num1)){            if(variables.get(num1).toString().contains(.)||num2.contains(.)){                return(num1+ + +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())+Double.parseDouble(num2)));            }else{                return(num1+ + +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())+Integer.parseInt(num2)));            }        }else{            if(num1.contains(.)||variables.get(num2).toString().contains(.)){                return(num1+ + +num2+ = +Double.toString(Double.parseDouble(num1))+Double.parseDouble(variables.get(num2).toString()));            }else{                return(num1+ + +num2+ = +Integer.toString(Integer.parseInt(num1)+Integer.parseInt(variables.get(num2).toString())));            }        }    }}//subtracts 2 variablespublic static String subtract(String num1,String num2){    try{        try{            if(num1.contains(.)||num2.contains(.)){                return(num1+ - +num2+ = +Double.toString(Double.parseDouble(num1)-Double.parseDouble(num2)));            }else{                return(num1+ - +num2+ = +Integer.toString(Integer.parseInt(num1)-Integer.parseInt(num2)));            }            }catch(Exception e){                if(variables.get(num1).toString().contains(.)||variables.get(num2).toString().contains(.)){                    return(num1+ - +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())-Double.parseDouble(variables.get(num2).toString())));                }else{                    return(num1+ - +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())-Integer.parseInt(variables.get(num2).toString())));                }            }    }catch(Exception e){        if(variables.containsKey(num1)){            if(variables.get(num1).toString().contains(.)||num2.contains(.)){                return(num1+ - +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())-Double.parseDouble(num2)));            }else{                return(num1+ - +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())-Integer.parseInt(num2)));            }        }else{            if(num1.contains(.)||variables.get(num2).toString().contains(.)){                return(num1+ - +num2+ = +Double.toString(Double.parseDouble(num1)-Double.parseDouble(variables.get(num2).toString())));            }else{                return(num1+ - +num2+ = +Integer.toString(Integer.parseInt(num1)-Integer.parseInt(variables.get(num2).toString())));            }        }    }}//multiplys 2 variablespublic static String multiply(String num1,String num2){    try{        try{            if(num1.contains(.)||num2.contains(.)){                return(num1+ * +num2+ = +Double.toString(Double.parseDouble(num1)*Double.parseDouble(num2)));            }else{                return(num1+ * +num2+ = +Integer.toString(Integer.parseInt(num1)*Integer.parseInt(num2)));            }            }catch(Exception e){                if(variables.get(num1).toString().contains(.)||variables.get(num2).toString().contains(.)){                    return(num1+ * +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())*Double.parseDouble(variables.get(num2).toString())));                }else{                    return(num1+ * +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())*Integer.parseInt(variables.get(num2).toString())));                }            }    }catch(Exception e){        if(variables.containsKey(num1)){            if(variables.get(num1).toString().contains(.)||num2.contains(.)){                return(num1+ * +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())*Double.parseDouble(num2)));            }else{                return(num1+ * +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())*Integer.parseInt(num2)));            }        }else{            if(num1.contains(.)||variables.get(num2).toString().contains(.)){                return(num1+ * +num2+ = +Double.toString(Double.parseDouble(num1)*Double.parseDouble(variables.get(num2).toString())));            }else{                return(num1+ * +num2+ = +Integer.toString(Integer.parseInt(num1)*Integer.parseInt(variables.get(num2).toString())));            }        }    }}//divides 2 variablespublic static String divide(String num1,String num2){    try{        try{            if(num1.contains(.)||num2.contains(.)){                return(num1+ / +num2+ = +Double.toString(Double.parseDouble(num1)/Double.parseDouble(num2)));            }else{                if(Double.parseDouble(num1)%Double.parseDouble(num2)==0){                    return(num1+ / +num2+ = +Integer.toString(Integer.parseInt(num1)/Integer.parseInt(num2)));                }else{                    return(num1+ / +num2+ = +Double.toString(Double.parseDouble(num1)/Double.parseDouble(num2)));                }            }            }catch(Exception e){                if(variables.get(num1).toString().contains(.)||variables.get(num2).toString().contains(.)){                    return(num1+ / +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())/Double.parseDouble(variables.get(num2).toString())));                }else{                    if(Double.parseDouble(variables.get(num1).toString())%Double.parseDouble(variables.get(num2).toString())==0){                        return(num1+ / +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())/Integer.parseInt(variables.get(num2).toString())));                    }else{                        return(num1+ / +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())/Double.parseDouble(variables.get(num2).toString())));                    }                }            }    }catch(Exception e){        if(variables.containsKey(num1)){            if(variables.get(num1).toString().contains(.)||num2.contains(.)){                return(num1+ / +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())/Double.parseDouble(num2)));            }else{                if(Double.parseDouble(variables.get(num1).toString())%Double.parseDouble(num2)==0){                    return(num1+ / +num2+ = +Integer.toString(Integer.parseInt(variables.get(num1).toString())/Integer.parseInt(num2)));                }else{                    return(num1+ / +num2+ = +Double.toString(Double.parseDouble(variables.get(num1).toString())/Double.parseDouble(num2)));                }            }        }else{            if(num1.contains(.)||variables.get(num2).toString().contains(.)){                return(num1+ / +num2+ = +Double.toString(Double.parseDouble(num1)/Double.parseDouble(variables.get(num2).toString())));            }else{                if(Double.parseDouble(num1)%Double.parseDouble(variables.get(num2).toString())==0){                    return(num1+ / +num2+ = +Integer.toString(Integer.parseInt(num1)/Integer.parseInt(variables.get(num2).toString())));                }else{                    return(num1+ / +num2+ = +Double.toString(Double.parseDouble(num1)/Double.parseDouble(variables.get(num2).toString())));                }            }        }    }}//finds the remainderpublic static String remainder(String num1,String num2){    try{        try{            if(Double.parseDouble(num1)%Double.parseDouble(num2)==0){                return(num1+ % +num2+ = +Integer.toString(0));            }else{                return(num1+ % +num2+ = +Integer.toString((int) (Double.parseDouble(num1)%Double.parseDouble(num2))));            }        }catch(Exception e){            if(Double.parseDouble(variables.get(num1).toString())%Double.parseDouble(variables.get(num2).toString())==0){                return(num1+ % +num2+ = +Integer.toString(0));            }else{                return(num1+ % +num2+ = +Integer.toString((int) (Double.parseDouble(variables.get(num1).toString())%Double.parseDouble(variables.get(num2).toString()))));            }        }    }catch(Exception e){        if(variables.containsKey(num1)){            if(Double.parseDouble(variables.get(num1).toString())%Double.parseDouble(num2)==0){                return(num1+ % +num2+ = +Integer.toString(0));            }else{                return(num1+ % +num2+ = +Integer.toString((int)(Double.parseDouble(variables.get(num1).toString())%Double.parseDouble(num2))));            }        }else{            if(Double.parseDouble(num1)%Double.parseDouble(variables.get(num2).toString())==0){                return(num1+ % +num2+ = +Integer.toString(0));            }else{                return(num1+ % +num2+ = +Integer.toString((int)(Double.parseDouble(num1)%Double.parseDouble(variables.get(num2).toString()))));            }        }    }}//powers the first one to the second onepublic static String power(String num1,String num2){    try{        try{            if(Math.floor(Math.pow(Double.parseDouble(num1), Double.parseDouble(num2)))==Math.pow(Double.parseDouble(num1), Double.parseDouble(num2))){                return(num1+ ^ +num2+ = +Integer.toString((int)(Math.pow(Double.parseDouble(num1), Double.parseDouble(num2)))));            }else{                return(num1+ ^ +num2+ = +Double.toString(Math.pow(Double.parseDouble(num1), Double.parseDouble(num2))));            }        }catch(Exception e){            if(Math.floor(Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(variables.get(num2).toString())))==Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(variables.get(num2).toString()))){                return(num1+ ^ +num2+ = +Integer.toString((int)(Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(variables.get(num2).toString())))));            }else{                return(num1+ ^ +num2+ = +Double.toString(Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(variables.get(num2).toString()))));            }        }    }catch(Exception e){        if(variables.containsKey(num1)){            if(Math.floor(Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(num2)))==Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(num2))){                return(num1+ ^ +num2+ = +Integer.toString((int)(Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(num2)))));            }else{                return(num1+ ^ +num2+ = +Double.toString(Math.pow(Double.parseDouble(variables.get(num1).toString()), Double.parseDouble(num2))));            }        }else{            if(Math.floor(Math.pow(Double.parseDouble(num1), Double.parseDouble(variables.get(num2).toString())))==Math.pow(Double.parseDouble(num1), Double.parseDouble(variables.get(num2).toString()))){                return(num1+ ^ +num2+ = +Integer.toString((int)(Math.pow(Double.parseDouble(num1), Double.parseDouble(variables.get(num2).toString())))));            }else{                return(num1+ ^ +num2+ = +Double.toString(Math.pow(Double.parseDouble(num1), Double.parseDouble(variables.get(num2).toString()))));            }        }    }}//set something in the hashtablepublic static String set(String num1,String num2){    variables.put(num1, num2);    return(num1+ was set to +num2);}//gets something in a hashtablepublic static String get(String num1){    try{        return (variables.get(num1).toString());    }catch(NullPointerException e){        return(num1+ was not set to anything.);    }}}
Can you guys look at my java project and give me some tips?
java;parsing;swing