Я вернулся с новым вопросом о том же коде, что и в прошлый раз.Я взял много предложений, которые были даны, и изменил несколько вещей.Программа компилируется, но прямоугольник не отображается ни при каких входных данных.Люди в последнем обсуждении говорили, что код будет работать с исправленными проблемами, но, похоже, это не работает.Я не знаю, если это проблема с графикой (я думаю, что кто-то другой предложил сделать то, что я сделал в коде, который я имею сейчас) или с тем, как я принимаю ключевые входные данные.
В любом случае, в программе, представленной ниже, должен быть нарисован прямоугольник, и для этого прямоугольника необходимо переместить его на одну координату вправо или влево в зависимости от того, нажата ли клавиша <- или -> на клавиатуре.Тем не менее, ни один прямоугольник не появляется с любым вводом.
import java.awt.*;
import java.net.*;
import java.util.*;
import java.applet.Applet;
public class game extends Applet
{
Thread loopThread;
boolean left = false;
boolean right = false;
int platPos = 50;
public void run()
{
Graphics g = null;
int i, j;
long startTime;
if (loopThread == null)
{
loopThread = new Thread();
loopThread.start();
}
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
startTime = System.currentTimeMillis();
while(Thread.currentThread() == loopThread)
{
updatePlatter(g);
}
}
public void updatePlatter(Graphics g)
{
if(left)
{
g.setColor(new Color(255,255,255)); //sets color to white
g.fillRect(50+platPos, 200, 100, 20); //draws over whatever existing rectangle there is with white
platPos--;
g.setColor(new Color(100,100,100)); //sets new color
g.fillRect(50+platPos,200, 100,20); //draws new rectangle
left = false;
}
if(right)
{
g.setColor(new Color(255,255,255));
g.fillRect(50+platPos,200,100,20);
platPos++;
g.setColor(new Color(100,100,100));
g.fillRect(50+platPos,200,100,20);
right = false;
}
}
public boolean keyDown(Event e, int key)
{
if (key == Event.LEFT)
left = true;
if (key == Event.RIGHT)
right = true;
return true;
}
}
Также я хочу использовать апплет, а не JFrame.Просто личное предпочтение.Спасибо за любую помощь!^. ^