Tastendruck in JFrame ausgeben und verarbeiten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Tastendruck in JFrame ausgeben und verarbeiten

    Ja man vieleicht merkt, bin ich ein Anfänger in Java was JFrame und co betrifft. Was schleifen, Variablen, Arrays, Methoden, Klassen und so betrifft sollte ich eigentlich klar kommen. Meine Frage ist es hauptsächlich, wie ich am einfachsten Sachen wie tastendruckabfragen in einem JFrame ausgebe und wie ich eine Tastendruckabfrage tätige.
    Fenster erstellen:

    Quellcode

    1. package Taste;
    2. import javax.swing.JFrame;
    3. public class Abfrage {
    4. /**
    5. * @param args
    6. */
    7. public static void main(String[] args) {
    8. JFrame f = new JFrame();
    9. f.setTitle("Titel");
    10. f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    11. f.setSize(500,300);
    12. f.setLocation(300,100);
    13. f.setVisible(true);
    14. }
    15. }
    Alles anzeigen

    Nun wusste ich nicht wie ich die Tastenabfrage im Frame bewerkstelligen könnte...(mit einem Listener ist mir schon klar aber genau weiss ich es eben nicht)
    Bitte um Hilfe
  • Das was du suchst wär der "ActionListener" hier ein Beispiel:

    Quellcode

    1. import javax.swing.*;
    2. import java.awt.*;
    3. import java.awt.event.ActionEvent;
    4. import java.awt.event.ActionListener;
    5. public class s1ck implements ActionListener {
    6. JTextField iText = new JTextField("",15);
    7. JButton submit = new JButton("Absenden");
    8. JPanel content = new JPanel();
    9. public s1ck() {
    10. JFrame window = new JFrame("Window with Input");
    11. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    12. window.setSize(300,100);
    13. window.setVisible(true);
    14. submit.addActionListener(this);
    15. content.add(iText);
    16. content.add(submit);
    17. window.add(content);
    18. }
    19. public static void main(String[] args) {
    20. new s1ck();
    21. }
    22. @Override
    23. public void actionPerformed(ActionEvent a) {
    24. Object click = a.getSource();
    25. if(click == submit){
    26. String text = iText.getText();
    27. JOptionPane.showMessageDialog(null, text);
    28. }
    29. }
    30. }
    Alles anzeigen


    Wenn fragen hast kannst dich gern Melden oder hier einfach stellen.

    mfG s1ck

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von s1ckST4R ()

  • ja hätte da schon paar fragen, da ich wie gesagt ein ziemlicher anfänger bin...
    Wie Frage ich nun z.B. den Code also z.B. 39,38,40 und so für Pfeiltasten ab. Ich müsste wissen, welche Taste gedrückt wurde, da ich später dann mal etwas bewegen möchte.
    Zweite Frage: Wofür wird der content sprich das JPanel verwendet? Ist das sowas wie der Inhalt?
    Letzte Frage: Was ist das erste Attribut(null) hier: JOptionPane.showMessageDialog(null, text);

    Schon mal vielen Dank für deine Hilfe, mir erscheint nun einiges logischer. War eben zuvor eher so konsolenprogrammierer und webprogrammierer, mit grafischer oberfläche hatte ich in diesem Zusammenhang noch nichts z utun.
  • Mit Tasteninput hatte ich bisher noch nichts gemacht, da kann ich dir leider nicht helfen.

    Zu Frage 2:
    Du musst die Elemente in ein JPanel zusammenfügen und sie dann in das Frame adden, du kannst das auch testen indem du ein JButton in den Frame direkt hinzufügst, wird nicht funktionieren, deswegen braucht man das Panel.

    zu Frage 3:
    showMessageDialog is eine von mehreren Funktionen die JOptionPane bietet, diese Funktion gibt eigentlich nur eine Message aus like JS: alert();
    Hier mal ein paar mehr Funktionen: docs.oracle.com/javase/1.4.2/d…ax/swing/JOptionPane.html

    mfG s1ck
  • So ich hab es nun geschafft in einem Fenster den Keycode mit einem KeyListener abzufangen. Bei Fragen stehe ich gerne zu Verfügung. Was mich noch interessieren würde ist, ob ich in einem Fenster wenn ich etwas zeichne also z.B. ein Spielfeld, einfach eine Figur oder ein Bild gehen lassen kann. Ziel der Sache wär dann irgendwann mal ein Spielfeld zu haben, wo ich ein Strichmännchen herumsteuern kann mit den Pfeiltasten. Die Tastenabfrage habe ich ja nun hinbekommen, das Spielfeld habe ich aus einem .bmp file auslesen lassen. Nun fehlt "nur noch" die Spielfigur und wie ich sie übers Spielfeld laufen lassen kann.
    Der Code zum abfangen der Tasten:

    Quellcode

    1. import javax.swing.*;
    2. import java.awt.event.KeyEvent;
    3. import java.awt.event.KeyListener;
    4. public class hören implements KeyListener {
    5. JPanel content = new JPanel();
    6. JTextField feld= new JTextField("", 15);
    7. public hören() {
    8. JFrame window = new JFrame("Fenster");
    9. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    10. window.setSize(300,100);
    11. window.setVisible(true);
    12. feld.addKeyListener(this);
    13. content.add(feld);
    14. window.add(content);
    15. }
    16. public static void main(String[] args) {
    17. new hören();
    18. }
    19. @Override
    20. public void keyPressed(KeyEvent e) {
    21. if(e.getKeyCode()== 40)
    22. {
    23. JOptionPane.showMessageDialog(null, "Taste gedrückt");
    24. }
    25. else
    26. {
    27. JOptionPane.showMessageDialog(null, "Falsche Taste, drücken Sie Pfeil nach unten");
    28. }
    29. }
    30. @Override
    31. public void keyReleased(KeyEvent e) {
    32. }
    33. @Override
    34. public void keyTyped(KeyEvent e) {
    35. }
    36. }
    Alles anzeigen

    Wenn mir jemand einen Tipp hat bezüglich wie man Bilder oder so übers Spielfeld laufen lassen kann, ohne immer das ganze Panel neu zu laden wär ich sehr froh, ansonsten mach ich mich wohl mal wieder hinter die Bücher. Danke an s1ckST4R