En lugar de esto
if (key1 != NO_KEY && (key1=='1'||key1=='2'||key1=='3'||key1=='4'||key1=='5'||key1=='6'||key1=='7'||key1=='8'||key1=='9'||key1=='0')){
puedes usar esto
if (key1 != NO_KEY && isDigit(key1)) {
y como yo lo veo no hace falta el key1 != NO_KEY y basta con
if (isDigit(key1))