Ich versuche gerade einen Rechner in java
zu erstellen. Ich habe alle Nummerntasten, Operationen, Nummernanzeige usw. erstellt. Ich habe auch die Funktion zu jeder Taste hinzugefügt. Alles hat gut funktioniert. Dann fügte ich einen Knopf hinzu, durch den ich einen Punkt (Dezimalpunkt) einfügen konnte. Aber das wird nicht richtig in JTextField
eingefügt. Hier ist die actionPerfomed()
für die Taste 1 und dot
Taste ....JTextField passt Zeichen nicht korrekt an
one.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
numdisp.setText(numdisp.getText()+one.getText()); //numdisp is the number displayer(JTextField)
}
//Other buttons like button2,button3,button4,etc.... are not mentioned as they have the same set of code....
dot.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
numdisp.setText(dot.getText()+numdisp.getText());
});
Wenn Sie die Taste one
Taste die JTextField
zeigt die Nummer 1. Dann drücken Sie die Taste dot
. Die JTextField
zeigt "1.". Bis jetzt ist alles gut. Drücken Sie dann erneut 1. Das erwartete Ergebnis ist "1.1", stattdessen wird "11." angezeigt. Warum tritt dieses seltsame Problem auf? Wie man es repariert?
Sie fügen den Punkt * vor * die vorhandene Zeichenfolge hinzu. Sie sollten es in der gleichen Reihenfolge hinzufügen, wie Sie es in der Zahl tun. – RealSkeptic
numdisp.setText (numdisp.getText() + "."); –
Ich denke, dass der Flow + das Ergebnis, das Sie erklären, nicht dem Code entspricht, den Sie eingefügt haben. – Redlab