I want to combine two Strings when I push the Enter-Button.
Also when I Tab from the TextField to the Button it works when i push Space but not with Enter. Is this normal for Java ?
My Code looks like:
(Comments are in German so you can just ignore them, if you don't understand the language)
package demo; // Gehört zum Paket demo
import java.awt.*; // Abstract Windows Toolkit importieren
import java.awt.event.*; // Abstract Windows Toolkit Events importieren
import javax.swing.*; // Swing importieren
/** @author
@version 1.0*/
public class strings extends JFrame implements ActionListener{ // Klasse strings auf public gesetzt - erweitert mit JFrame - implementiert Action Listener
JButton but1; // Indiziert Button (für GUI)
JTextField tfstring; // Indiziert TextFeld (für GUI)
JTextField tfstring2; // Indiziert TextFeld (für GUI)
JTextField endstring; // Indiziert Ausgabefeld (für GUI)
String str1; // Indiziert String
String str2; // Indiziert String
String fullstring; // Indiziert Ausgabe für beide Strings
public strings() { // Konstrukt strings auf public gesetzt
JFrame frame = new JFrame("Strings"); // Neues Fenster mit Titel (für GUI)
JPanel Panel = new JPanel(); // Container erstellen
JLabel label = new JLabel("Ihr String 1:"); // Text einfügen
Panel.add(label); // Label in Pannel einfügen
tfstring = new JTextField("", 15); // Textfeld erstellen (für GUI)
Panel.add(tfstring); // Text Feld String in Panel einfügen
JLabel label2 = new JLabel("Ihr String 2:"); // Textfeld erstellen (für GUI)
Panel.add(label2); // Label in Panel einfügen
tfstring2 = new JTextField("", 15); // Textfeld erstellen (für GUI)
Panel.add(tfstring2); // Text Feld String in Panel einfügen
but1 = new JButton("OK"); // Button erstellen
but1.addActionListener(this); // Methode für den Button erstellt
Panel.add(but1); // Button in Panel einfügen
JLabel label3 = new JLabel("Fertiger String:"); // Ausgabefeld erstellt
Panel.add(label3); // Label in Oannel ainfügen
endstring = new JTextField("", 20); // textfeld für Ausgabe
endstring.setEditable(false); // Sperrt Ausgabefeld
Panel.add(endstring); // Fertiger String in Panel einfügen
frame.add(Panel); // Panel hinzufügen
frame.setSize(900,75); // Grösse des Fensters
frame.setVisible(true); // Panel sichtbar machen
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Standart Operation beim Schliesen des Fensters erstellt
}
public static void main(String[] args) {
// TODO Auto-generated method stub
strings st = new strings(); // Konstruktor ins main einbinden
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == this.but1){ // Methode für Button festlegen
str1 = tfstring.getText(); // String 1 nimmt Text von tfstring
str2 = tfstring2.getText(); // String 2 nimmt Text von tfstring 2
fullstring = str1 + str2; // Ausgabe beider Strings aus String 1 und String 2 zusammensetzen
endstring.setText((fullstring)); // Fertiger String nimmt Text von der Ausgabe beider Strings
}
}
}
Add keyListener to your button but1
like that:
// declare the listener
but1.addKeyListener(new KeyListener() {
// listen to keys
public void keyPressed(KeyEvent e){
// find ENTER key press
if(e.getKeyCode() == KeyEvent.VK_ENTER){
// do your stuff here!!! :)
}
}
}
NOTE: if you want this action be performed in various elements like JTextField
don't declare the listener on the fly:
Declare the KeyListener
like this:
KeyListener listener = new KeyListener() {
// listen to keys
public void keyPressed(KeyEvent e){
// find ENTER key press
if(e.getKeyCode() == KeyEvent.VK_ENTER){
// do your stuff here!!! :)
}
}
And add it to the elements you need:
but1.addKeyListener(listener);
tfstring.addKeyListener(listener);