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());
}         
Другие вопросы по тегам