aaalso.., ich habe ein Text-Feld und daneben einen Button.
Bisheriger Ablauf:
Man klickt in das Textfeld, gibt eine Zahl ein und klickt auf den Button. Dann wird die Zahl gespeichert, das Textfeld geleert und das ganze geht wieder von vorne los und immer so weiter.
Jetzt möchte ich gerne dass wenn man in dem Textfeld die Zahl eingegeben hat und auf ENTER drückt der Button aktiviert wird. Anschließend soll der Cursor wieder in das Textfeld springen.
Wie kann ich das machen? Ich habe überhaupt keine Idee..
KeyListener implementieren (Du brauchst hiervon die Methode keyPressed) und an das Textfeld binden. Dort dann mittels getKeyChar abfragen, ob Enter gedrückt wurde und wenn das der Fall ist, den entsprechenden Code zum Abspeichern des Textes aufrufen. Am besten den Code zum Speichern dafür in eine eigene Methode packen, die sowohl ausgeführt wird, wenn Enter gedrückt wurde, als auch wenn der Button gedrückt wurde. Den Fokus brauchst Du dafür gar nicht ändern.
Edit: Falls Du den Fokus doch irgendwie mal ändern willst, ist die Methode requestFocus() dafür das Mittel der Wahl.
was für ein schreckliches Posting,
lies bitte diese Kritik und bedenke sie in Zukunft..
WAS geht nicht? Compilerfehler/ Exception/ tut nix?
WAS ist der Rest deines Programmes? 20 Zeilen mehr machen es ausführbar und jeder kann es selber probieren/ ändern
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class TestGUI extends JFrame {
public TestGUI() throws Exception {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 255);
JTextField e = new JTextField("Hello");
e.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
System.out.println("KEY PRESSED: " + e.getKeyCode());
}
});
e.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("ActionEvent ");
}
});
getContentPane().add(e);
setVisible(true);
}
public static void main(String[] args) throws Exception {
TestGUI t = new TestGUI();
}
}
bei mir gehts..
KeyAdapter statt KeyListener ist komfortabler,
nur für Enter reicht gar ein simpler ActionListener, dann musst du dir nicht die einzelnen Tasten anschauen
RechnenZwanzig.java:72:19: <anonymous RechnenZwanzig$1> is not abstract and does not override abstract method keyReleased(java.awt.event.KeyEvent) in java.awt.event.KeyListener
public void keyPressed(KeyEvent e){
^
1 error
Entschuldigung, das mit Listener und Adapter war wohl auch irgendwie mein Fehler, da ich davon ausgegangen bin, daß Fehlermeldungen nicht einfach nur als "geht nicht" interpretiert werden, sondern sich auch mal Gedanken um den Text der Fehlermeldung gemacht werden. Und da er ja schon ein Formular mit Textfeld und Button hatte, dachte ich er kennt das Prinzip Listener<>Adapter schon von WindowListener<>WindowAdapter.