Я в настоящее время пытаюсь сделать калькулятор в java
. Я создал все числовые кнопки, операции, отображение номеров и т. Д. Я также добавил функцию к каждой кнопке. Все работало хорошо. Затем я добавил кнопку, через которую я мог бы вставить точку (десятичную точку). Но это неправильно вставлено в JTextField
. Вот actionPerfomed()
для кнопки 1 и dot
кнопка ....JTextField dosen't правильно вставить символы
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());
});
При нажатии на кнопку one
JTextField
показывает номер 1. Затем нажмите кнопку dot
. На рисунке JTextField
отображается «1.». До сих пор все хорошо. Затем снова нажмите 1. Ожидаемый результат: «1,1», но вместо этого отображается «11.». Почему возникает эта странная проблема? Как это исправить?
Вы добавляете точку * до * существующей строки. Вы должны добавить его в том же порядке, что и в номере. – RealSkeptic
numdisp.setText (numdisp.getText() + "."); –
Я думаю, что поток + результат, который вы объясняете, не соответствует введенному вами коду. – Redlab