У меня есть класс под названием «DisplayPanel» (который расширяет JPanel), и я рисую квадрат, который исходит из класса «Квадрат» (который расширяет JComponent). Как перенести прямоугольник в JPanel с помощью клавиш?Переместить прямоугольник в JPanel с помощью клавиш
Квадрат класс имеет обычный метод окраски:
public void paintComponent(Graphics g) {
Dimension dimension = getSize();
super.paintComponent(g);
Graphics2D graphics2D = (Graphics2D) g;
g.setColor(Color.black);
graphics2D.fill(squarishThing);
}
и «squarishThing» является нормальным прямоугольник:
Rectangle squarishThing = new Rectangle (0, 0, 50, 50);
Дело в отличие от «игровых библиотек», пытаясь сделать такая вещь «вручную» довольно запутанна. Я не знаю, где идет «цикл while». Я попытался поместить KeyListener в DisplayPanel, и я ошибся, чтобы обновить прямоугольник. Нет цикла, и я не могу перерисовать прямоугольник, потому что метод paintComponent принимает этот неприятный аргумент. OBS: каждый раз, когда я пытаюсь вставить цикл, программное обеспечение резко падает, поэтому я отказался от этого.
Что можно сделать, чтобы перекрасить объект в соответствии с вводом?
Посмотрите на использование привязок клавиш. Например, посмотрите [этот ответ] (http://stackoverflow.com/a/6887354/522444). –
Это для игры? Если это так, вам понадобится цикл. И что вы имеете в виду «резко падает»? Петли не являются динамитами. – Nikki
Таймер Swing может работать для простой игровой петли. –