Du kan benytte dig af en KeyListener, der kan implementeres i en JComponent F.eks:
public class myPanel extends JPanel implements KeyListener{ //Tilføjer en KeyListener til dette panel this.addKeyListener(this); }
Der er 3 metoder du her skal implementere:
keyPressed(), keyReleased() og keyTyped()
Når en bruger trykker på en knap kan du F.eks. fange dette event i keyTyped metoden:
public void keyTyped(KeyEvent e) { System.out.println(e.getKeyChar()); }
HUSK at give din komponent fokus vha. JComponent.requestFocus(). Ellers fanger du ikke nogle taste-tryk overhovedet.
Sig til hvis jeg skal uddybe :)
Synes godt om
Slettet bruger
20. oktober 2008 - 18:34#2
Jeg har fået lavet noget kode, og det virker :D Det eneste problem er at når man trykker på piletaster, space, alt, ctrl eller F-tasterne, så siger den bare "?", og ved space, sker der intet.
Min kode ser således ud: Her kalder jeg classen JPanel KeyPanel = new JPanel(new BorderLayout()); KeyPanel.add(new Keylisten(), BorderLayout.CENTER); f.getContentPane().add(KeyPanel);
Og sådan ser classen ud Keylisten.java: import javax.swing.*; import java.awt.*; import java.awt.event.*;
class Keylisten extends JComponent implements KeyListener { public Keylisten() { this.addKeyListener(this); }
public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e) { System.out.println(e.getKeyChar()); } public void keyReleased(KeyEvent e){}
public boolean isFocusTraversable() { return true; }
}
Håber du kan hjælpe :), men tak for hjælpen indtil videre :), gav mig et skub i den rigtige retning ;)
Det betyder bare at de taster der returnerer '?' ikke har nogen char tilknyttet - metoden viste jeg dig også bare så du fik en idé om hvordan det virkede. En bedre metode er at bruge e.getKeyCode() i stedet for e.getKeyChar(). Denne metode returnerer et tal, der svarer til en bestemt knap.
Ulempen er så at du først bliver nødt til at trykke på knapperne og se hvilke numre de svarer til før du kan bruge det til noget ;) Men så kan du i hvert fald godt få noget til at ske når du trykker på space!
Synes godt om
Slettet bruger
20. oktober 2008 - 22:51#4
Takker ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.