import java.lang.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class xxx {
private JFrame window;
private JPanel mainPanel,inputPanel, buttonPanel;
private JTextField jtxtNum1,jtxtNum2;
private JLabel jlblNum1Caption,jlblNum2Caption;
private JButton jbtndey;
private String[] tokens;
private int pos;
public xxx(){
window = new JFrame("Калькулятор");
window = new JFrame("Калькулятор");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
mainPanel = new JPanel(new BorderLayout());
inputPanel = new JPanel();
buttonPanel = new JPanel();
inputPanel.setLayout(new GridLayout(1, 4));
buttonPanel.setLayout(new GridLayout(2, 4, 5, 5));
mainPanel.add(inputPanel, BorderLayout.NORTH);
mainPanel.add(buttonPanel, BorderLayout.CENTER);
addButtonsAndTextFields();
window.getContentPane().add(mainPanel);
window.pack();
window.setLocationRelativeTo(null);
window.setVisible(true);
}
public xxx(String expr)
{
this.tokens = expr.split( "\\+|-" );
this.pos = 0;
}
public double calculate(){
double first = multiply();
while(pos < tokens.length)
{
String operator = tokens[pos++];
double second =multiply();
if(operator.equals("+")){
first += second;
}else{
first -= second;
}
}
return first;
}
public double multiply(){
double first = Double.parseDouble(tokens[pos++]);
while(pos < tokens.length)
{
String operator = tokens[pos];
if (!operator.equals("*") && !operator.equals("/"))
{break;}
else
{
pos++;
}
double second = Double.parseDouble(tokens[pos++]);
if(operator.equals("*")){
first *= second;
}else{
first /= second;
}
}
return first;
}
public static void main(String[] args) {
}
ActionListener oty = new ouyyss();
public void addButtonsAndTextFields() {
jbtndey = new JButton("deystvio");
jlblNum1Caption = new JLabel("Число 1: ", JLabel.RIGHT);
jlblNum2Caption = new JLabel("ответ: ", JLabel.RIGHT);
jtxtNum1 = new JTextField("");
jtxtNum2 = new JTextField("");
jbtndey.addActionListener(oty);
buttonPanel.add(jbtndey);
inputPanel.add(jlblNum1Caption);
inputPanel.add(jtxtNum1);
inputPanel.add(jlblNum2Caption);
inputPanel.add(jtxtNum2);
}
private class ouyyss implements ActionListener{
@Override
public void actionPerformed(ActionEvent event) {
if (event.getSource() == jbtndey) {
dey();
}}
}
public void dey() {
String expr= "5+5+5+5+5" ;
xxx xx = new xxx(expr);
jtxtNum2.setText(xx.calculate());
}
}
class ze{
public static void main(String[] args) {
xxx xx = new xxx();
}
}
Andry KIT
5 уровень
привет.у меня две проблеми.первая: как зделать так чтоби этот калькулятор нормально щитал .и вторая как подключить его нормально к екрану.у меня два конструктора .первий public xxx() это екран .второй public xxx(String expr) конструктор калькултора .public double calculate() собствено калькулятор
Обсуждается
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Максим Ляшов
19 ноября 2020, 16:19
xxxxxx xxxxx xxxx xxx xx x вроде так должно работать
0
Ksenia VolkovaJava Developer в DXCMaster
19 ноября 2020, 15:44
Мне кажется, тебе надо сначала разобраться, что такое класс, конструктор, метод... Иначе ничего не выйдет.
Не зря же изучение начинают с основ, а не пишут сразу калькуляторы на swing.
0
Andry KIT
19 ноября 2020, 15:52
я знаю что такое класс. обьект . и что такое метод. я просто не могу понять где допустил ошибку и как решить свою проблему.понимаешь.я плохо знаю java но я учусь. по этому я обращаюсь за помощью к вам.
0
hidden #2322530
19 ноября 2020, 15:55
а ещё если почитаешь что такое CleanCode, глядишь и люди подтянутся.
это вообще топ:
0
Andry KIT
19 ноября 2020, 16:00
CleanCode? окей от совета мастера к новичку глупа отказиваться верно
0
hidden #2322530
19 ноября 2020, 16:01
ничего не понял, но очень интересно
0
Andry KIT
19 ноября 2020, 16:07
короч. я тебя послушаю. спасибо за совет
0
Ksenia VolkovaJava Developer в DXCMaster
19 ноября 2020, 16:08
Если бы ты действительно понимал, что такое класс и объект, то не написал бы то, что у тебя написано в заголовке. Это довольно бессмысленные фразы.
Когда учишься, лучше идти постепенно от простого к сложному, а не пытаться сразу запрыгнуть на 10-ю ступеньку.
0
Andry KIT
20 ноября 2020, 12:24
но если я смогу на нее запригнуть.хотя ти права.можно у тебя попросить об одной прозьбе .ни могла би мне в этом помочь.совсем немного .я готов учиться но я плохо знаю как.например как ти достигла такого уровня?
0