![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 29.03.2017
Сообщений: 1
|
![]()
Скажите пожалуйста, как создать отдельный файл для класса CalculatorEngine, чтобы он был связан с MyNewCalculator. Я так поняла, что из-за того, что все в одном файле программа не работает. При компиляции пишет, что не видит main.
import javax.swing.*; import java.awt.GridLayout; import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JButton; public class CalculatorEngine implements ActionListener { MyNewCalculator parent; char selectedAction = ' '; double currentResult =0; CalculatorEngine(MyNewCalculator parent) { this.parent = parent; } 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(); //для каждой кнопки арифметического действия запомнить его, //сохраниить текущее число в переменной currentResult //и очистить дисплей для ввода нового числа 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.buttonDivide){ selectedAction='/'; currentResult=displayValue; parent.displayField.setText(""); }else if (src == parent.buttonMultiply){ selectedAction='*'; currentResult = displayValue; parent.displayField.setText(""); }else if(src == parent.buttonEqual){ if (selectedAction=='+'){ currentResult+=displayValue; parent.displayField.setText("" + currentResult); }else if(selectedAction=='-'){ currentResult-=displayValue; parent.displayField.setText(""+ currentResult); }else if (selectedAction=='*'){ currentResult*=displayValue; parent.displayField.setText(""+ currentResult); }else{ String clickedButtonLabel = clickedButton.getText(); parent.displayField.setText(dispFie ldText + clickedButtonLabel); } } } public class MyNewCalculator { //Объявляем и инициализируем компоненты окна JButton button0 = new JButton(); JButton button1 = new JButton(); JButton button2 = new JButton(); JButton button3 = new JButton(); JButton button4 = new JButton(); JButton button5 = new JButton(); JButton button6 = new JButton(); JButton button7 = new JButton(); JButton button8 = new JButton(); JButton button9 = new JButton(); JButton buttonPoint = new JButton("."); JButton buttonEqual = new JButton("="); JButton buttonPlus = new JButton("+"); JButton buttonMinus = new JButton("-"); JButton buttonDivide = new JButton("/"); JButton buttonMultiply = new JButton("*"); JPanel windowContent = new JPanel(); JTextField displayField = new JTextField(); // Конструктор MyNewCalculator(){ // Установить расположения для панели BorderLayout b1 = new BorderLayout(); windowContent.setLayout(b1); windowContent.add("North", displayField); //создаем панель с менеджером расположения GridLayout // в которой будет 12 кнопок - 10 цифр, и кнопки "точка" и "равно" JPanel p1 = new JPanel(); GridLayout gl = new GridLayout(4,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(button0); p1.add(buttonPoint); p1.add(buttonEqual); //Добавляем панель p1 в центр окна windowContent.add("Center",p1); // создаем панель с менеджером расположения GridLayout // на которой будет 4 кнопки - плюс, минус, разделить, умножить 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); //добавляем панель p2 в правую часть окна windowContent.add("East", p2); //Создаем фрейм и добавляем в него содержимое JFrame frame = new JFrame("Calculator"); frame.setContentPane(windowContent) ; //устанавливаем размер окна, так чтобы уместились все компоненты frame.pack(); //показываем окно frame.setVisible(true); } // создаем экземпляр слушателя событий и регистрируем его в каждой кнопке CalculatorEngine calcEngine = new CalculatorEngine(this); { button0.addActionListener(calcEngin e); button1.addActionListener(calcEngin e); button2.addActionListener(calcEngin e); button3.addActionListener(calcEngin e); button4.addActionListener(calcEngin e); button5.addActionListener(calcEngin e); button6.addActionListener(calcEngin e); button7.addActionListener(calcEngin e); button8.addActionListener(calcEngin e); button9.addActionListener(calcEngin e); buttonPoint.addActionListener(calcE ngine); buttonPlus.addActionListener(calcEn gine); buttonDivide.addActionListener(calc Engine); buttonMinus.addActionListener(calcE ngine); buttonMultiply.addActionListener(ca lcEngine); } } public static void main (String[] args) { MyNewCalculator calcEngine = new MyNewCalculator(); } } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Книги по многопоточности в Java | _Osaka | Общие вопросы по Java, Java SE, Kotlin | 1 | 13.02.2017 19:52 |
Java-книги | Makc4k | Свободное общение | 6 | 07.02.2013 02:29 |
Какие книги купить по Java, Python, Html | severest | Помощь студентам | 0 | 07.01.2013 17:04 |
Книги по Java | Sylar9 | Общие вопросы по Java, Java SE, Kotlin | 3 | 25.03.2012 02:33 |
Java книги для программиствов | Izhic | Свободное общение | 7 | 08.09.2009 01:12 |