JAVA щелчок мышью, перемещение с клавиатуры

#java #keyboard #click #mouse #jframe

#java #клавиатура #щелчок #мышь #jframe

Вопрос:

Я хотел выбрать объект внутри JFrame и переместить его с помощью клавиш со стрелками клавиатуры. Я делал с клавиатурой, всякий раз, когда я нажимал клавиши со стрелками, она перемещалась соответственно направлению. Я хочу переместить несколько объектов. Я попытался поместить несколько объектов, и они переместились одновременно xD

tldr; есть ли способ, при котором вы можете щелкнуть только по одному объекту с помощью мыши и управлять им с помощью клавиш со стрелками клавиатуры?

Комментарии:

1. Можете ли вы объяснить, как вы заставляете объекты перемещаться? Вы говорите о таких компонентах, как JButtons или о каких-то объектах, которые вы нарисовали на экране?

2. нарисованные объекты. есть класс, который называется Movable . в нем есть методы нажатия / освобождения клавиш. другой класс Painter расширяет JPanel реализует ActionListener, в нем есть частный класс AL extends KeyAdapter с / методы keyreleased / pressed .внутри него также выполняется actionperformed, это repaint() в конструкторе painter setfocusable true, addkeylistener new al(), я загружу исходный код

3. не знаю, но ссылка перенаправляет на пользовательскую ошибку, бла-бла-бла, я попробую то, что сказал Sentil 🙂

4. Я удалил вашу мертвую ссылку.

Ответ №1:

Несмотря на то, что вопрос недостаточно ясен, перемещение одного или нескольких объектов не является проблемой. Вам нужно использовать прослушиватель KeyEvent для объекта, который вы хотите прослушать, и перемещать компоненты на основе KeyEvent.

Вот некоторые ссылки:http://download.oracle.com/javase/tutorial/uiswing/events/keylistener.html

Комментарии:

1. на самом деле у меня есть keyPressed и KeyRelease в этих объектах, но проблема в том, что у них одинаковые условия, например, при нажатии влево все объекты будут перемещаться влево. есть ли способ, при котором вы можете щелкнуть только по одному, и этот объект будет перемещаться?

2. Затем вам нужно зарегистрировать прослушиватель для каждого из этих компонентов или проверить источник события и переместить только этот компонент. И вы могли бы использовать клавишу Tab, чтобы сосредоточиться на компонентах, а не использовать щелчок мыши, если вы предпочитаете