Блог только про Java
Учимся программировать на Java с нуля
Простой калькулятор на Java
Представляю вам готовый калькулятор на Java. Просто скопируйте нижний код и вставьте его в ваш IDE Eclipse или NetBeans.
Комментариев 31 на “ Простой калькулятор на Java ”
Про ActionListener можно по подробнее?
За http://pro-java.ru/obrabotchiki-sobytii/ спасибо.
Все можно. Постараюсь на днях сделать уроки специально по ActionListener.
а как добавить кнопку очистки? ну чтобы введенные данные или результат удалялся
0.1 + 0.2=0.300000000004 – и вы это называете калькулятором.
Alex прежде чем возникать посмотрите какого типа result в Java – double имеет такую особенность что при арифметических операциях он некоректно возвращает результат(типу 0.300000000004) если хотите норм результат объявите как BigDecimal и все будет в порядке.
И будет 0, тот еще эксперт я погляжу. Меняется не один параметр и не на BigDecimal, а на float.
Это ж сколько мне еще учится что бы написать хотя бы такой калькулятор.
Может ну ее эту яву?
Ну на сайте найдете много информации.
Посетите рубрику “Java для начинающих”.
Здравствуйте,помогите пожалуйста написать копию калькулятора windos 7, на среде программирования netbeans язык java , с использованием swing.
Подскажите пожалуйста как сделать чтобы внесенные пользователем данные вносились в Базу Данных (н2 )
Получилось только добавлять данные записанные в коде (использовал stmt.execute(“INSERT INTO lesson (nam , code ) VALUES (‘фио’, ‘имя’)” ) ,
а из формы не получается.
Так сейчас калькулятор любой сложности на http://formdesigner.ru/ сделать можно. Это онлайн конструктор веб-форм любой , я там себе опрос на сайт дела.
Спасибо, за ссылку. Интересный сервис, попробую на нем создать калькулятор.
if(lastCommand.equals(“+”)) result += x;
else if(lastCommand.equals(“-“)) result -= x;
else if(lastCommand.equals(“*”)) result *= x;
else if(lastCommand.equals(“/”)) result /= x;
else if(lastCommand.equals(“=”)) result = x;
За такое по рукам давать надо 🙂
Дмитрий, почему же? 🙂
Не вставлены “< >” ?
Наверно, имеется ввиду, что лучше использовать switch case
switch (lastCommand)
<
case “+”: result +=x; break;
case “-“: result -=x; break;
case “*”: result *=x; break;
case “/”: result /=x; break;
case “=”: result = x; break;
как исправить использование float ибо простой результат вычитания 2,3-0,3 выдает страшное число
1,9999999999998
А как этот шрифт называется?
public class Main <
public static void main(String args[]) <
Scanner sc =new Scanner(System.in);
int i =sc.nextInt();
String a = sc.next();
int j =sc.nextInt();
if(a.equals(“/”)) <
System.out.print(i / j);
>
if(a.equals(“*”)) <
System.out.print(i*j);
>
if(a.equals(“-“)) <
System.out.print(i – j);
>
if(a.equals(“+”)) <
System.out.print(i + j);
>
Не знаю, чи правильно але працює
К черту этот джава, ну нафиг, “простой” калькулятор мне такому не научится ну к черту программирование сидел бы в html не высовывался.
Спасибо большоееееее )))))
то что мне надо
В вашей программе после нажатия кнопки “=” вы не сможете вычесть из результата новое значение.
Поделитесь пожалуйста вашим кодом здесь, в комментариях.
вставьте пожалуйста комментарии в код, у меня несколько другая структура кода, пытаюсь разобраться откуда идут корни того, что есть у вас и нет у меня..
не претендую на гениальность (только учусь) – прошу конструктивной критики! Сделал округление до 2 знаков и кнопку очистки:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator <
public static void main(String[] args) <
EventQueue.invokeLater(new Runnable()
<
public void run() <
CalculatorFrame frame = new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
>
>);
>
>
class CalculatorFrame extends JFrame <
public CalculatorFrame() <
setTitle(“Calculator 2.0”);
CalculatorPanel panel = new CalculatorPanel();
add(panel);
pack();
>
>
class CalculatorPanel extends JPanel <
public CalculatorPanel() <
setLayout(new BorderLayout());
result = 0;
lastCommand = “=”;
start = true;
display = new JButton(“0”);
display.setEnabled(false);
add(display, BorderLayout.NORTH);
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();
panel = new JPanel();
panel.setLayout(new GridLayout(4, 5));
addButton(“”, command);
addButton(“7”, insert);
addButton(“8”, insert);
addButton(“9”, insert);
addButton(“/”, command);
addButton(“”, command);
addButton(“4”, insert);
addButton(“5”, insert);
addButton(“6”, insert);
addButton(“*”, command);
addButton(“”, command);
addButton(“1”, insert);
addButton(“2”, insert);
addButton(“3”, insert);
addButton(“-“, command);
addButton(“Cl”, command);
addButton(“0”, insert);
addButton(“.”, insert);
addButton(“=”, command);
addButton(“+”, command);
private void addButton(String label, ActionListener listener) <
JButton button = new JButton(label);
button.addActionListener(listener);
panel.add(button);
>
private class InsertAction implements ActionListener <
public void actionPerformed(ActionEvent event) <
String input = event.getActionCommand();
if (start) <
display.setText(“”);
start = false;
>
display.setText(display.getText() + input);
>
>
private class CommandAction implements ActionListener <
public void actionPerformed(ActionEvent event) <
String command = event.getActionCommand();
if (start) <
if (command.equals(“Cl”)) <
// display.setText(command);
display.setText(“”);
start = false;
> else lastCommand = command;
> else <
calculate(Double.parseDouble(display.getText()));
lastCommand = command;
start = true;
>
>
>
public void calculate(double x) <
switch (lastCommand)
<
case “+”: result=Math.rint((result + x)*100)/100; break;
case “-“: result=Math.rint((result – x)*100)/100; break;
case “*”: result=Math.rint((result * x)*100)/100; break;
case “/”: result=Math.rint((result / x)*100)/100; break;
case “=”: result = x; break;
private JButton display;
private JPanel panel;
private double result;
private String lastCommand;
private boolean start;
>
Очень интересный материал.
Во я полный дурак что не нашел ваш сайт сразу еще год назад, ой дураак.
Спасибо очень! Поклон вам.
всем привет!
нужна помощь в создании калькулятора двоичных чисел
кто может помочь или хотя б подсказать как это делать напишите мне пожалуйста в инстаграме @_olyezha_
Источник статьи: http://pro-java.ru/gotovye-programmy-java/prostoj-kalkulyator-na-java/
Как написать простой калькулятор клиент-сервер (JavaFX+EJB+WildFly)
Итак, допустим, мы хотим реализовать клиент-серверное приложение, где на стороне клиента будут формироваться нужные данные, а на стороне сервера будет производится расчет и возвращаться клиенту в виде результата. Если брать в расчет простой калькулятор (давайте сделаем его еще проще, 4 оператора, операнды без дробей и работа по схеме [операнд1] [оператор] [операнд2] [результат]) и, допустим, реализовать его на каком-нибудь ЯП (язык программирования), например, Java, с использование сервера приложения (допустим WildFly/JBoss)+клиента (можно взять на вооружение JavaFX), то можно это сделать следующим способом:
Этот же вариант можно решить с использованием RMI (Remote Method Invocation) без сервера, клиента GUI и EJB, в консоли, но этот вариант рассматривать не будем, а приступим к более интересной реализации.
1. Нам понадобятся следующие ингредиенты:
1.1. JDK,
1.2. IDE (с поддержкой Java EE),
1.3. WildFly (или другой сервер приложений для Java),
1.4. SceneBuilder (для удобства и быстрого создания GUI).
Для связи клиента с сервером будем использовать JNDI (служба именования и каталогов), используя EJB (фреймворк для построения бизнес-логики).
2. Создаем реализацию серверной части:
2.1. Удаленный интерфейс, посредством которого будет происходить связь между клиентов и сервером (используем аннотацию Remote — компонент EJB будет использовать RMI).
2.2. Класс, реализующий этот интерфейс (используем аннотацию @Stateless — сеансовый компонент без сохранения состояния).
2.3. Добавим наш класс исключения, который будет сигнализировать деление на ноль или неверный формат.
2.4. С помощью IDE создаем ear-файл (Enterprise Archive), запускаем сервер (можно со стандартным портом), деплоим на него и если ошибок не было замечено, то с серверной частью закончено.
Лог сервера может быть такой:
3. Создаем реализацию клиентской части:
3.1. В SceneBuilder набрасываем следующий макет калькулятора (main.fxml), css пока накручивать не будем:
3.2. Подключаем контроллер класс к fxml-форме, для антиблокировки GUI (залипания формы) при ожидании данных с сервера на кнопку «=» добавим новую нитку:
3.3. Добавим логику работы простейшего калькулятора:
3.5. Добавляем клиентскую библиотеку (в случае с WildFly это jboss-client.jar), запускаем GUI.
Как видно из приложенных кодов, пользователь набирает в буфер для операндов цифры, выбирает оператора, при нажатии кнопки «=» происходит соединение с сервером (через службу JNDI), надпись на дисплее «WAITING. » будет свидетельствовать ожидание ответа с сервера.
Также отметим пару исключений: NumberFormatException (отлавливается при вводе данных пользователем на клиенте) и ArithmeticException (отлавливается при делении на ноль на сервере).
Источник статьи: http://habr.com/ru/post/477436/
Пишем калькулятор на JavaScript
Доброго времени суток, друзья!
В этой статье мы с вами, как следует из названия, напишем простой калькулятор на JavaScript.
Желание написать калькулятор возникло у меня после просмотра одного туториала, посвященного созданию «simple calculator», который оказался далеко не симпл и толком ничего не умел делать.
Наш калькулятор будет true simple (42 строки кода, включая пробелы между блоками), но при этом полнофункциональным и масштабируемым.
Без дальнейших предисловий, приступаем к делу.
Наша разметка выглядит так:
Здесь мы подключаем библиотеку, создаем контейнер для калькулятора и поле для вводимых символов и результата.
Вот что мы имеем на данный момент:
Кнопки будут генерироваться программно.
Определяем поле для вывода результата и создаем контейнер для клавиатуры:
Наша строка с символами выглядит так:
Преобразуем данную строку в массив и создаем кнопки:
Находим созданные кнопки и добавляем к ним обработчик события «клик»:
Мы также хотим иметь возможность вводить символы с помощью клавиатуры. Для этого нам необходимо добавить обработчик события «нажатие клавиши» к объекту «Document» или «Window», затем отфильтровать ненужные значения свойства «ключ» клавиши, например, с помощью регулярного выражения:
Метод «match» в данном случае играет роль фильтра: он не позволяет передавать функции «calc» аргумент, не соответствующий заданному в нем условию.
Само условие звучит так: если значением event.key является один из символов, указанных в квадратных скобках ([]; цифра от 0 до 9, знаки деления, умножения, сложения, вычитания, открывающая, закрывающая круглые скобки или знак равенства; обратная косая черта — экранирование) или (| — альтерация) Backspace, или Enter, то вызываем calc с event.key в качестве параметра, иначе ничего не делаем (Shift также успешно отбрасывается).
Наша главная (и единственная) функция «calc» выглядит следующим образом (код следует читать снизу вверх):
В завершение, парочка слов о заявленной масштабируемости и полнофункциональности.
Метод «evaluate» (ранее «eval») и другие методы Math.js имеют очень большие возможности. Опираясь на эти возможности, мы можем легко расширить функционал нашего калькулятора, добавив в него новые символы и операторы, предусмотрев возможность работы с числами с плавающей точкой (регулируя количество знаков после запятой с помощью переключателя и метода «toFixed») и т.д.
Благодарю за внимание. Надеюсь, вы нашли для себя что-то полезное. Хороших выходных и счастливого кодинга.
Источник статьи: http://habr.com/ru/post/500086/
Калькулятор на Java
Надо ввести число, затем Enter, действие (+ — / *), Enter, 2 число.
Может считать также и дробные числа. Дробные числа писать через точку, а не запятую.
public static void main(String[]args) throws Exception
BufferedReader klava = new BufferedReader (new InputStreamReader(System.in));
float n1 = Float.parseFloat(f);
String act = klava.readLine();
float n2 = Float.parseFloat(s);
Найдены возможные дубликаты
В старом году всех прощаю!
что дальше? хэлоувролды будем постить?
Это моя первая программа, следующая как вы и просили будет «хэллоу ворлд» но на её написанипонадобится не меньше 2 недель.
не надо постить на пикабу каждое свое «поделие».
вот если бы написали приложение по феншую:
— корректный ввод с консоли;
— лексер, парсер, интерпретатор выражений;
вот тогда бы было поучительно для новчиков.
Просто при копировании все поля и отступы исчезли. Спасибо за советы!
Потенциально бесконечный цикл
Одно и то же
Понятливый Олег
Коллега скинул в рабочий чат)))
6. Повторить
Словарь редких IT-терминов #20
Гитхам — человек, который форспушит в мастер.
Все форспушат, а кто говорит, что не форспушит — форспушит больше всех?
Я пытался решить проблему с помощью Java.
Теперь у меня есть ProblemFactory
Командная работа
Ответ на пост «Коротко о моих программах»
Вспомнился похожий косяк, неожиданно вылезший)
В студенческие годы был подключен к локальной сети, и на локальном портале висел прогноз погоды, кроме того, админ даже сделал вариант запроса, который просто отдавал цифру температуры.
И вот, увидев всё это, решил я на новогодних каникулах наваять термометр на рабочий стол. Это была простейшая прога на delphi — парсить ничего не надо, просто забирай запросом цифру; я нашел красивый png градусника, а шкалу сделал прогрессбаром(который менял цвет с синего(-) на красный(+)). И висел этот градусник тихонько в углу экрана, показывая температуру в городе. Висел до весны, а потом просто упал с ошибкой.
Да, где-то у меня в проге было деление, и как только температура на улице поднялась до нуля — всё свалилось)
Коротко о моих программах
Еще и светлую тему юзает
Ты будешь плакать как тучка
В: Ребята, посоветуйте книгу которая заставила вас плакать
O: «Структуры данных и алгоритмы в Java», 2-е издание
Обучение программированию на C# и Java бесплатно без регистрации и смс
На волне поста prodigal.son’а об обучение кодингу на Ruby, в связи с избытком времени, я (Java developer) и мой лучший друг (.Net developer) готовы бесплатно помочь наставлять на путь истинный обучения програмированию пикабушников. Почему наставлять, а не проводить какие то уроки? Да потому что вся информация, курсы, книги, материалы и задачи и так разбросаны по сети. Но из-за этого избытка новички просто теряется в этом океане информации и я хочу помочь им разобраться по мере своих возможностей. А тем кто уже что то-делает и немного умеет подсказывать :).
Сразу к делу, отвечу на несколько популярных вопросов и дам важные комментарии.
Все ли смогут научиться программированию?
Скажу честно, не все. На всевозможных курсах вам будут обещать золотые горы, легкий вход в отрасль, а иногда даже гарантировать 100% успех. Но мало кто расскажет о подводных камнях профессии. Профессия программиста легка на первый взгляд, также присутствуют нюансы, возможно узнав которые может от затеи учиться кодить. Поэтому вряд ли кто-то кроме вас сможет сказать получится у вас или нет. Все зависит от человека, его целей и желания. Если у тебя есть мотивация много учиться, то у тебя есть шансы.
С чем работаем, с тем и помогаем 🙂 Это одни из наиболее популярных языков программирования в 2020 году в мире. И к тому же высокооплачиваемые. Да, языки не самые простые. Главное не подумайте, что все обучение это изучение синтаксиса одного языка.
Что лучше — курсы, книги или видео?
Важно все, но еще важнее — практика, практика и еще раз практика. Кодить и кодить каждый день, причем вам должно это нравится. Если вам не будет это нравится то исход печален.
Можно ли войти в отрасль после 30+?
Да, можно, примеров достаточно. Тяжелее чем более молодому соискателю, но опять же, все зависит от Вас. Предрассудки в России по поводу возраста никто не отменял. Поэтому плавно переходим к следующему вопросу.
Тяжело ли найти работу на начальную позицию?
В 2020 году чтобы войти в IT-отрасль на позицию Junior-разработчика требования к подготовке серьезные. 10 лет назад было гораздо проще. Но не унывай падаван, IT отрасль все еще рынок соискателя, главное что-то представлять из себя ценное. Мы готовы указать на знания, твое дело их принять.
Насколько важен английский?
Архиважен. Без него на успех и не надейтесь. В начале со словарем, но по мере углубления в тему без английского не обойтись. Лучшие книги, онлайн курсы будут на английском и это не шутки. Поэтому готовьтесь к изучения необходимого уровня языка. Из приятных бонусов английский нужен не только в IT.
Что насчет хороших зарплат?
Зарплаты хорошие. Загвоздка в том, что чтобы достичь высот нужно много работать, знать, читать, изучать. Причем изучать постоянно. Не факт, что если бы попробовали себя в какой то другой отрасли и потратив столько же времени, сил, энергии не достигли тех же зарплат.
Самое главное, осилит путь идущий. Путь новичка нелегок. Мы будем помогать мотивировать, от вас нужна полная самоотдача и усидчивость. Лень наш главный враг и с ней мы не будем мириться.
Как все будет происходить?
Для всего этого я создал чат в котором мы будем отвечать на ваши вопросы в телеграм и другие пикабушники будут помогать, если мы не будем успевать отвечать:
Также я создал канал для важной информации и плана обучения. На текущий момент уже создан небольшой FAQ для новичков. Скоро появятся важные книги.
Также будем рады уже состоявшимся сеньорам помидорам (^_^), которые готовы будут помогать новичкам пикабушникам.
Для примера, мы обязательно затронем такие темы как с чего начинать, необходимые навыки, IDE или онлайн-компиляторы, книги, алгоритмы, подготовка к собеседованиям.
И напоследок, в силу последних событий в мире у многих нас появилось время, которое можно потратить с пользой и «вложить» в себя. Вложиться в себя значит инвестировать в свое будущее. Так что нам надо начинать, let’s start!
Источник статьи: http://pikabu.ru/story/kalkulyator_na_java_5600220