Do you mean you want them to walk in a straight line? or do you want them to chase the player? anyway you should read my entire post as it might give you a few ideas.
either way you are not doing it right. The way you code it, the monster will only move once, and only if they are in that exact position.
If you want to make the monster chase the player:
if (monster.x > player.x)
move(-1,0);
else
if (monster.x < player.x)
move(1,0);
//do the same with y
Otherwise if you want the monster to move randomly, you could choose a random position to move to each frame/length of time
eg.
//initialise
long lastTime = 0;
Random random = new Random();
int targetX = 0;
int targetY = 0;
//in ai processing
if (System.currentTimeMillis() - lastTime > 3000) //change target position every 3 seconds
{
lastTime = System.currentTimeMillis();
targetX = random.nextInt(width); //choose a random place to walk to on the screen
targetY = random.nextInt(height);
}
if (monster.x > targetX )
move(-1,0);
else
if (monster.x < targetX)
move(1,0);
//again do same with y
Otherwise if you want the monster to patrol up and down the screen or something,
have 2(or more) positions and move back and forward between them
int[] x = new int[2];
int[] y = new int[2]; //2 x and y positions
int currentTarget = 0; // the position to go to
x[0] = 0;
y[0] = 20;
x[1] = 100;
y[1] = 30;
//will make the monster walk from (0,20) to (100,30), then back, and then there again, and back etc
if (monster.x > x[currentTarget])
move(-1,0);
else
if (monster.x < x[currentTarget])
move(1,0);
//do same with y yet again...
if ((monster.x == x[currentTarget]) && (monster.y == y[currentTarget]))
{
currentTarget++;
if (currentTarget > x.length)
currentTarget = 0;
}