При выполнении операций +, — , * и / не очищать экран - Java
Формулировка задачи:
Всем доброго дня!
Подскажите , что нужно сделать в коде ниже, чтобы при нажатии на операцию +,-,/,* числа не исчезали...Сейчас такая последовательность: нажимаю 5, потом + и число пять пропадает, нажимаю дальше 5, потом равно и выводится результат...
А нужно нажимаю 5, потом + и число не исчезает...
Листинг программы
- public class CalcFrame extends JFrame {
- JTextArea display= new JTextArea();
- JPanel buttonPanel = new JPanel(new GridLayout(5,3));
- JButton button0 = new JButton("0");
- JButton button1 = new JButton("1");
- JButton button2 = new JButton("2");
- JButton button3 = new JButton("3");
- JButton button4 = new JButton("4");
- JButton button5 = new JButton("5");
- JButton button6 = new JButton("6");
- JButton button7 = new JButton("7");
- JButton button8 = new JButton("8");
- JButton button9 = new JButton("9");
- JButton buttonSum = new JButton("+");
- JButton buttonBack = new JButton("C");
- JButton buttonDivide = new JButton("/");
- JButton buttonSub = new JButton("-");
- JButton buttonMul = new JButton("*");
- JButton buttonStart = new JButton("=");
- int firstValue = 0;
- String operation = "+";
- CalcFrame() {
- setBounds(300, 300, 300, 300);
- button0.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText() + "0");
- }
- });
- button1.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"1");
- }
- });
- button2.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"2");
- }
- });
- button3.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"3");
- }
- });
- button4.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"4");
- }
- });
- button5.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"5");
- }
- });
- button6.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"6");
- }
- });
- button7.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"7");
- }
- });
- button8.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"8");
- }
- });
- button9.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- display.setText(display.getText()+"9");
- }
- });
- buttonBack.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- String temp = display.getText();
- display.setText(temp.substring(0,temp.length()-1));
- }
- });
- buttonSum.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- firstValue = Integer.valueOf(display.getText());
- display.setText("");
- operation = "+";
- }
- });
- buttonMul.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- firstValue = Integer.valueOf(display.getText());
- display.setText("");
- operation = "*";
- }
- });
- buttonDivide.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- firstValue = Integer.valueOf(display.getText());
- display.setText("");
- operation = "/";
- }
- });
- buttonSub.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- firstValue = Integer.valueOf(display.getText());
- display.setText("");
- operation = "-";
- }
- });
- buttonStart.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- int secondValue = Integer.valueOf(display.getText());
- if("+".equals(operation)){
- display.setText((firstValue+secondValue)+"");
- }
- if("-".equals(operation)){
- display.setText((firstValue-secondValue)+"");
- }
- if("*".equals(operation)){
- display.setText((firstValue*secondValue)+"");
- }
- if("/".equals(operation)){
- display.setText((firstValue/secondValue)+"");
- }
- firstValue = 0;
- operation = "+";
- }
- });
- setLayout(new BorderLayout());
- add(display, BorderLayout.NORTH);
- add(buttonPanel,BorderLayout.CENTER);
- add(buttonStart,BorderLayout.SOUTH);
- buttonPanel.add(button0);
- buttonPanel.add(button1);
- buttonPanel.add(button2);
- buttonPanel.add(button3);
- buttonPanel.add(button4);
- buttonPanel.add(button5);
- buttonPanel.add(button6);
- buttonPanel.add(button7);
- buttonPanel.add(button8);
- buttonPanel.add(button9);
- buttonPanel.add(buttonSum);
- buttonPanel.add(buttonSub);
- buttonPanel.add(buttonMul);
- buttonPanel.add(buttonBack);
- buttonPanel.add(buttonDivide);
- setVisible(true);
- }
- public static void main(String[] args) {
- new CalcFrame();
- }
- }
функция очищения была изначально...калькулятор не мой, я просто тренируюсь на нём...я пока новичок и плохо представляю по каким поисковым словам искать сие потребство
Решение задачи: «При выполнении операций +, — , * и / не очищать экран»
textual
Листинг программы
- int secondValue = Integer.valueOf(display.getText().substring(display.getText().indexOf(operation)));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д