Java KeyPressed для всех клавиш
В Java я делаю приложение, которое, когда активируется (если wantCommand = true), будет читать любую клавишу, которую вы нажимаете, читает и добавляет ее в строку, а затем, используя Java.awt.Graphics, рисует строку в экран... Может кто-нибудь помочь мне с кодом, чтобы получить строку для того, что вы печатаете (и, возможно, удаление также в случае, если вы испортили то, что печатали) Вот то, что у меня есть до сих пор:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
public class slashCommand {
public static boolean wantCommand = false;
public static String commandLine = "kill";
public static String getText () {
//get the string in a for loop or something maybe
return commandLine;
}
public static void render(Graphics g) {
if (wantCommand) {
g.setColor(new Color(0, 0, 0, 130));
g.fillRect(Inventory.inv_bag[0].x - 100, Inventory.inv_bag[0].y + 116, Component.size.width, 10);
g.setColor(new Color(255, 255, 255));
g.setFont(new Font("Arial", Font.PLAIN, 10));
g.drawString("/ " + commandLine, Inventory.inv_bag[0].x - 69, Inventory.inv_bag[0].y + 125);
}
}
}
2 ответа
Похоже, вам предстоит долгий путь. Тебе нужно:
- Наиболее важен графический интерфейс, предпочтительно Swing, а не AWT, так что ваши нажатия клавиш и рисование строк имеют приложение для взаимодействия и отображения данных.
- KeyListener, прикрепленный к компоненту, который имеет фокус. Обратите внимание, что я не думаю, что привязки клавиш будут хорошо работать для этого.
- JPanel с переопределенной
paintComponent(Graphics g)
метод.
Попробуйте зарегистрировать слушатель события keyPressed в GUI; событие говорит о том, какая клавиша нажата и которую вы можете передать
private void formKeyPressed(java.awt.event.KeyEvent evt)
{
System.out.println(evt.getKeyChar());
}