In Java, a short has a maximum value of 32767. This is smaller than the integer literal that you are trying to assign to it. Hence, in the first case, it is complaining about a lost of precision, as the value will overflow, when converted to a short.
In Java, a literal value (ie. a number) is considered to be an integer. And an integer has a maximum value of 2147483647. Hence, in the second case, it is complaining about the integer literal as not being valid.