Buchstabe ausgeben mit KeyListener in Java?
In einem Fenster soll der gepresste Buchstabe ausgegeben werden mithilfe von drawString. Leider weiß ich nicht, wie ich die Information aus e.getKeyChar() mit drawString ausgeben kann.
Hier ist der Java Code:
public class Test extends JPanel implements KeyListener {
String a;
Random r = new Random();
int x = r.nextInt(6) + 1;
int y = r.nextInt(6) + 1;
Test() {
addKeyListener(this);
setFocusable(true);
requestFocusInWindow();
}
@Override
public void keyPressed(KeyEvent e) {
a = e.getKeyChar();
repaint();
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.blue);
g.drawString(a, x, y);
}
@Override
public void keyTyped(KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e) {}
public static void main(String[] args) {
JFrame m = new JFrame("Letters");
Test neu = new Test();
m.setContentPane(neu);
m.setVisible(true);
m.setSize(400, 400);
m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Programmiersprache
KeyEvent.getKeyChar() gibt, wie schon der Name andeutet, keinen String, sondern ein char zurück.
Du kannst aber mit String.valueOf() daraus einfach einen String machen.
Außerdem kannst du mit KeyEvent.getKeyCode() und .getKeyText() arbeiten: damit kann man auch "undruckbare" Tasten wie Shift ausgeben. Probier's aus.
Vielen Dank! Bin neu beim Programmieren, wusste deshalb nicht davon :)