Witam. Mam taki kod:
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KalkulatorBackend extends JFrame {
public KalkulatorBackend() {
setSize(400, 300);
setTitle("Calculator");
setResizable(false);
}
public static void main(String[] args) {
KalkulatorBackend window = new KalkulatorBackend();
window.setDefaultCloseOperation(EXIT_ON_CLOSE);
window.setVisible(true);
JTextField textField = new JTextField();
textField.setBounds(100, 100, 150, 20);
textField.setLayout(null);
window.add(textField);
textField.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
displayInfo(e);
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
protected void displayInfo(KeyEvent e) {
String keyFinalString = "";
String lancuchZnakow = null;
int id = e.getID();
if (id == KeyEvent.KEY_TYPED) {
char key = e.getKeyChar();
keyFinalString = keyFinalString + key;
}
if (keyFinalString != ""){
System.out.println(keyFinalString);
}
lancuchZnakow = lancuchZnakow + keyFinalString;
while (!(keyFinalString == "+")){
while (!(keyFinalString == "-")){
while (!(keyFinalString == "*")){
while (!(keyFinalString == "/")){
keyFinalString = "";
lancuchZnakow = null;
id = e.getID();
if (id == KeyEvent.KEY_TYPED) {
char key = e.getKeyChar();
keyFinalString = keyFinalString + key;
}
if (keyFinalString != ""){
System.out.println(keyFinalString);
}
//lancuchZnakow = lancuchZnakow + keyFinalString;
}
}
}
}
}
});
}
}
Problem polega na tym, że gdy wpiszę liczbę to jest ona bez końca wyświetlana. Gdzieś czytałem, że w głęboko zagnieżdżonych pętlach dzieją się różne rzeczy...
I jeszcze jedno. Jak zrobić aby keyListener sczytywał tylko liczby i +, -, /, *?
scibi92