I have Map<String,Integer>
object which is not null and i have performed some put()
operations on it in the constructor.
but when calling
object.get(str);
in a different function but from the same object i get a
Exception in thread "Thread-1" java.lang.NullPointerException
i have checked str
is not null and exists in the map object.
My programe:
package com.example.java;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
KeyInfo keyInfo = new KeyInfo();
keyInfo.key_handler("Up",0);
}
}
class KeyInfo {
final String[] keys_noshift =
{"Esc","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Scroll Lock","Insert","Delete",
"`","1","2","3","4","5","6","7","8","9","0","-","=","Backspace","Home",
"Tab","q","w","e","r","t","y","u","i","o","p","[","]","\\","Page Up",
"CapsLock","a","s","d","f","g","h","j","k","l",";","\'","Enter","Page Down",
"Shift","z","x","c","v","b","n","m",",",".","/","Shift","Up","End",
"Ctrl","Window","Alt","Space","Alt","Menu","Ctrl","Left","Down","Right"};
private Map<String,Integer> Keys = new HashMap<String,Integer>();
Robot robot;
public void KeyInfo() throws AWTException{
robot = new Robot();
Keys.put(keys_noshift[0],KeyEvent.VK_ESCAPE);
Keys.put(keys_noshift[1],KeyEvent.VK_F1);
Keys.put(keys_noshift[2],KeyEvent.VK_F2);
Keys.put(keys_noshift[3],KeyEvent.VK_F3);
Keys.put(keys_noshift[4],KeyEvent.VK_F4);
Keys.put(keys_noshift[5],KeyEvent.VK_F5);
Keys.put(keys_noshift[6],KeyEvent.VK_F6);
Keys.put(keys_noshift[7],KeyEvent.VK_F7);
Keys.put(keys_noshift[8],KeyEvent.VK_F8);
Keys.put(keys_noshift[9],KeyEvent.VK_F9);
Keys.put(keys_noshift[10],KeyEvent.VK_F10);
Keys.put(keys_noshift[11],KeyEvent.VK_F11);
Keys.put(keys_noshift[12],KeyEvent.VK_F12);
Keys.put(keys_noshift[13],KeyEvent.VK_SCROLL_LOCK);
Keys.put(keys_noshift[14],KeyEvent.VK_INSERT);
Keys.put(keys_noshift[15],KeyEvent.VK_DELETE);
Keys.put(keys_noshift[16],KeyEvent.VK_BACK_QUOTE);
Keys.put(keys_noshift[17],KeyEvent.VK_1);
Keys.put(keys_noshift[18],KeyEvent.VK_2);
Keys.put(keys_noshift[19],KeyEvent.VK_3);
Keys.put(keys_noshift[20],KeyEvent.VK_4);
Keys.put(keys_noshift[21],KeyEvent.VK_5);
Keys.put(keys_noshift[22],KeyEvent.VK_6);
Keys.put(keys_noshift[23],KeyEvent.VK_7);
Keys.put(keys_noshift[24],KeyEvent.VK_8);
Keys.put(keys_noshift[25],KeyEvent.VK_9);
Keys.put(keys_noshift[26],KeyEvent.VK_0);
Keys.put(keys_noshift[27],KeyEvent.VK_MINUS);
Keys.put(keys_noshift[28],KeyEvent.VK_EQUALS);
Keys.put(keys_noshift[29],KeyEvent.VK_BACK_SPACE);
Keys.put(keys_noshift[30],KeyEvent.VK_HOME);
Keys.put(keys_noshift[31],KeyEvent.VK_TAB);
Keys.put(keys_noshift[32],KeyEvent.VK_Q);
Keys.put(keys_noshift[33],KeyEvent.VK_W);
Keys.put(keys_noshift[34],KeyEvent.VK_E);
Keys.put(keys_noshift[35],KeyEvent.VK_R);
Keys.put(keys_noshift[36],KeyEvent.VK_T);
Keys.put(keys_noshift[37],KeyEvent.VK_Y);
Keys.put(keys_noshift[38],KeyEvent.VK_U);
Keys.put(keys_noshift[39],KeyEvent.VK_I);
Keys.put(keys_noshift[40],KeyEvent.VK_O);
Keys.put(keys_noshift[41],KeyEvent.VK_P);
Keys.put(keys_noshift[42],KeyEvent.VK_OPEN_BRACKET);
Keys.put(keys_noshift[43],KeyEvent.VK_CLOSE_BRACKET);
Keys.put(keys_noshift[44],KeyEvent.VK_BACK_SLASH);
Keys.put(keys_noshift[45],KeyEvent.VK_PAGE_UP);
Keys.put(keys_noshift[46],KeyEvent.VK_CAPS_LOCK);
Keys.put(keys_noshift[47],KeyEvent.VK_A);
Keys.put(keys_noshift[48],KeyEvent.VK_S);
Keys.put(keys_noshift[49],KeyEvent.VK_D);
Keys.put(keys_noshift[50],KeyEvent.VK_F);
Keys.put(keys_noshift[51],KeyEvent.VK_G);
Keys.put(keys_noshift[52],KeyEvent.VK_H);
Keys.put(keys_noshift[53],KeyEvent.VK_J);
Keys.put(keys_noshift[54],KeyEvent.VK_K);
Keys.put(keys_noshift[55],KeyEvent.VK_L);
Keys.put(keys_noshift[56],KeyEvent.VK_SEMICOLON);
Keys.put(keys_noshift[57],KeyEvent.VK_QUOTE);
Keys.put(keys_noshift[58],KeyEvent.VK_ENTER);
Keys.put(keys_noshift[59],KeyEvent.VK_PAGE_DOWN);
Keys.put(keys_noshift[60],KeyEvent.VK_SHIFT);
Keys.put(keys_noshift[61],KeyEvent.VK_Z);
Keys.put(keys_noshift[62],KeyEvent.VK_X);
Keys.put(keys_noshift[63],KeyEvent.VK_C);
Keys.put(keys_noshift[64],KeyEvent.VK_V);
Keys.put(keys_noshift[65],KeyEvent.VK_B);
Keys.put(keys_noshift[66],KeyEvent.VK_N);
Keys.put(keys_noshift[67],KeyEvent.VK_M);
Keys.put(keys_noshift[68],KeyEvent.VK_COMMA);
Keys.put(keys_noshift[69],KeyEvent.VK_PERIOD);
Keys.put(keys_noshift[70],KeyEvent.VK_SLASH);
Keys.put(keys_noshift[72],KeyEvent.VK_UP);
Keys.put(keys_noshift[73],KeyEvent.VK_END);
Keys.put(keys_noshift[74],KeyEvent.VK_CONTROL);
Keys.put(keys_noshift[75],KeyEvent.VK_WINDOWS);
Keys.put(keys_noshift[76],KeyEvent.VK_ALT);
Keys.put(keys_noshift[77],KeyEvent.VK_SPACE);
Keys.put(keys_noshift[79],KeyEvent.VK_CONTEXT_MENU);
Keys.put(keys_noshift[81],KeyEvent.VK_LEFT);
Keys.put(keys_noshift[82],KeyEvent.VK_DOWN);
Keys.put(keys_noshift[83], KeyEvent.VK_RIGHT);
}
public void key_handler(String str,int position){
if(position == 0){
if(Keys!=null){
System.out.println(str);
int temp = Keys.get(str); //line 122
robot.keyPress(temp);
}
}else if(position == 1){
robot.keyRelease(Keys.get(str));
}
}
}