Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2019, 16:56   #1
Polina_19
Новичок
Джуниор
 
Регистрация: 19.08.2019
Сообщений: 1
Восклицание Не поддается калькулятор)

1. Никак не получается осуществить ввод в одну строку операций(a + b), а получается только

(a
+
b)

2. как сделать что бы римские цифры калькулятор понимал как арабские, но (1+I) нельзя было сделать, выдавало "некорректные данные"?

Основной класс:

Код:
`public class Calculator_JM {
        
      
       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 buttonI = new JButton("I");
       JButton buttonII = new JButton("II");
       JButton buttonIII = new JButton("III");
       JButton buttonIV = new JButton("IV");
       JButton buttonV = new JButton("V");
       JButton buttonVI = new JButton("VI");
       JButton buttonVII = new JButton("VII");
       JButton buttonVIII = new JButton("VIII");
       JButton buttonIX = new JButton("IX");
       JButton buttonPoint = new JButton(".");
       JButton buttonEqual = new JButton("=");
       JButton buttonBack = new JButton("C");
       
       JButton buttonPlus = new JButton("+");
       JButton buttonMinus = new JButton("-");
       JButton buttonMultiply = new JButton("*");
       JButton buttonDivide = new JButton("/");
       
       JPanel windowContent = new JPanel();
       JTextField displayField = new JTextField(30);
       
       Calculator_JM() {
          
           BorderLayout bl = new BorderLayout();
           windowContent.setLayout(bl);
           
           //менеджер расположения
           windowContent.add("North", displayField);
     
           //панель с менеджером расположения
           JPanel p1 = new JPanel();
           GridLayout gl = new GridLayout(9,3);
           
           p1.setLayout(gl);
           p1.add(button1);
           p1.add(button2);
           p1.add(button3);
           p1.add(button4);
           p1.add(button5);
           p1.add(button6);
           p1.add(button7);
           p1.add(button8);
           p1.add(button9);
           p1.add(buttonI);
           p1.add(buttonII);
           p1.add(buttonIII);
           p1.add(buttonIV);
           p1.add(buttonV);
           p1.add(buttonVI);
           p1.add(buttonVII);
           p1.add(buttonVIII);
           p1.add(buttonIX);
           p1.add(button0);
           p1.add(buttonBack);
           p1.add(buttonPoint);
           p1.add(buttonEqual);
           
           windowContent.add("Center", p1);
           
           //кнопки для знаков
           JPanel p2 = new JPanel();
           GridLayout gl2 = new GridLayout(4,1);
           
           p2.setLayout(gl2);
           p2.add(buttonPlus);
           p2.add(buttonMinus);
           p2.add(buttonMultiply);
           p2.add(buttonDivide);
           
           //панель сместить вправо
           windowContent.add("East", p2);
           
           //создать и добавить все во фрейм
           JFrame frame = new JFrame("Calculator_JM");
           frame.setContentPane(windowContent);
           
           //размер окна и видимость
           frame.pack();
           frame.setVisible(true);
           
           //экземпляр слушател и регистрация
           CalculatorEngine calculatorEngine = new CalculatorEngine(this);
           
           button0.addActionListener(calculatorEngine);
           button1.addActionListener(calculatorEngine);
           button2.addActionListener(calculatorEngine);
           button3.addActionListener(calculatorEngine);
           button4.addActionListener(calculatorEngine);
           button5.addActionListener(calculatorEngine);
           button6.addActionListener(calculatorEngine);
           button7.addActionListener(calculatorEngine);
           button8.addActionListener(calculatorEngine);
           button9.addActionListener(calculatorEngine);
           buttonI.addActionListener(calculatorEngine);
           buttonII.addActionListener(calculatorEngine);
           buttonIII.addActionListener(calculatorEngine);
           buttonIV.addActionListener(calculatorEngine);
           buttonV.addActionListener(calculatorEngine);
           buttonVI.addActionListener(calculatorEngine);
           buttonVII.addActionListener(calculatorEngine);
           buttonVIII.addActionListener(calculatorEngine);
           buttonIX.addActionListener(calculatorEngine);
           
           buttonPoint.addActionListener(calculatorEngine);
           buttonBack.addActionListener(calculatorEngine);
           buttonPlus.addActionListener(calculatorEngine);
           buttonMinus.addActionListener(calculatorEngine);
           buttonMultiply.addActionListener(calculatorEngine);
           buttonDivide.addActionListener(calculatorEngine);
           buttonEqual.addActionListener(calculatorEngine);
           
       }
       
            public static void main(String[] args) {
                 Calculator_JM calc = new Calculator_JM();
            }    
    }`


3 класс: 

    public class CalculatorEngine implements ActionListener {
    
        Calculator_JM parent;
        char selectedAction = ' '; //+ - * /
        double currentResult = 0;
        CalculatorEngine(Calculator_JM parent){
            this.parent = parent; 
        }
        
             @Override
             public void actionPerformed(ActionEvent e) {
                JButton clickedButton = (JButton) e.getSource();
                String dispFieldText = parent.displayField.getText();
                double displayValue = 0;
                if(!"".equals(dispFieldText)){
                    displayValue = Double.parseDouble(dispFieldText);}
                Object src = e.getSource(); //для каждого деяствия кнопочки
                if (src == parent.buttonPlus){
                    selectedAction = '+';
                    currentResult = displayValue;
                    parent.displayField.setText(""); }
                else if (src == parent.buttonMinus){
                    selectedAction = '-';
                    currentResult = displayValue;
                    parent.displayField.setText(""); }
                else if (src == parent.buttonMultiply){
                    selectedAction = '*';
                    currentResult = displayValue;
                    parent.displayField.setText(""); }
                else if (src == parent.buttonDivide){
                    selectedAction = '/';
                    currentResult = displayValue;
                    parent.displayField.setText(""); }
                else if (src == parent.buttonBack){
                    selectedAction = 'C';
                    currentResult = displayValue;
                    parent.displayField.setText("");}
                else if (src == parent.buttonEqual){
                    if (selectedAction == '+'){
                    currentResult += displayValue;
                    parent.displayField.setText("" + currentResult);}
                    
               
             }
       
    
    }
полностью есть в закрепе
Вложения
Тип файла: rar Calculator_JM.rar (23.8 Кб, 18 просмотров)
Polina_19 вне форума Ответить с цитированием
Старый 28.08.2019, 12:56   #2
cupoma58
Пользователь
 
Аватар для cupoma58
 
Регистрация: 12.08.2014
Сообщений: 44
По умолчанию

калькулятор на Java(cupoma58.ru/java.html) и Assembler(cupoma58.ru/assembler.html)
cupoma58 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
калькулятор LeoDevel Помощь студентам 1 19.01.2013 21:31
Калькулятор ezhidudek Помощь студентам 20 04.01.2013 00:09
Калькулятор varyat Общие вопросы по Java, Java SE, Kotlin 6 13.06.2010 15:03
калькулятор Екатерина1995 Общие вопросы по Java, Java SE, Kotlin 4 29.05.2010 22:06
Тип даты не поддается форматированию multyaga Microsoft Office Excel 2 22.12.2006 10:54