Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110

Калькулятор. Вопросы.

02.06.2010, 22:45. Показов 2484. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишем вот калькулятор, с использованием Swing. Он будет считать и рисовать графики. Думаю буду в этом топике задавать вопросы, дабы не засорять форум.
Сейчас интересует такой вопрос: у меня есть GUI для калькулятора. Проблема состоит в том, что не каждое нажатие кнопок фиксируется слушателем событий, т.е. щелкаешь несколько раз по кнопке, а в текстовом поле калькулятора печатается цифра не каждый раз, а через раз допустим. Как решить вопрос ?
Листинг слушателя:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package calculator;
 
import java.awt.event.*;
import javax.swing.*;
 
 
 
import calculator.*;
 
/* слухач кнопок*/
public class Listener extends MouseAdapter
{
private JTextArea area;
 
public Listener() {
    super();
    area = ResultPanel.getArea();   
}
    // викликається при нажатті на кнопку
    public void mouseClicked(MouseEvent e)
    {
        area.append(e.getSource().toString());
        area.repaint();
    }
}
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2010, 22:45
Ответы с готовыми решениями:

Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились
Кто знает ребят подскажите в чем проблема, есть метод обновляющий текст в TextView (всего 6 вопросов). Так вот когда вопросы кончаются...

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include <iostream> int main(){ int a = 0; int b = 0; char operation; std::cout << "Enter first number: "; ...

Простой калькулятор и калькулятор с парсингом
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

7
33 / 33 / 1
Регистрация: 26.03.2007
Сообщений: 82
03.06.2010, 17:33
Я беру на себя обработку клавиш и вычисление, ну и графикостроитель.

Добавлено через 1 час 4 минуты
Хотя если есть у кого другие соображения, то могу "поделиться" =)
По крайней мере графикопостроитель за мной.
0
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
09.06.2010, 14:23  [ТС]
У меня возник вопрос. Написал функцию, которая получает строку, представляющую мат. уравнение. Функция парсит ее и возвращает массив точек описанных этим уравнением для прорисовки графика. Проблема заключается в следующем: у меня вычисление ведется на стековой машине. Не получается запихнуть в стек отрицательное число - не понимаю в чем проблема. Собственно вот в здесь выскакивает исключение:
Java
1
stack.push(-Double.parseDouble(taker.getToken()));
Exception in thread "main" java.lang.NumberFormatException: For input string: "-"
Может кто то знает в чем проблема ?
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
09.06.2010, 18:20
Начнем с того, какая у тебя jdk? У меня нормально все компилится под java 6. Во-вторых, Стэк, как коллекция, не умеет хранить примитивы, поэтому лучше использовать
Java
1
Double.valueOf(taker.getToken())
Ну, и, в-третьих, минус можно приписывать к строке
Java
1
Double.valueOf("-" + taker.getToken())
0
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
09.06.2010, 23:01  [ТС]
aleksandy, уже решил проблему.
Стек не хранит примитивы, но существует автоупаковка примитивов в классы-оболочки.
Там надо было показать ему, что это double, т.е. +"d" в конце числа.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
10.06.2010, 07:59
Цитата Сообщение от Lendon Посмотреть сообщение
существует автоупаковка примитивов в классы-оболочки
Про автобоксинг я в курсе, только это прямой путь к падению производительности. Только давай не считать мое высказывание подстрекательством к холивару .
Цитата Сообщение от Lendon Посмотреть сообщение
+"d" в конце числа
У меня все и без "d" все прекрасно работает. Возможно, дело в представлении самого числа в строке. Например, в jre от sun за десятичный разделитель принимается только точка.
0
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
10.06.2010, 23:26  [ТС]
Ну ясно. Я впринципе это все уже раскурил.

У меня следующий вопрос. Как задать точность в числе с двойной точностью ? Мне нужно что то типа setprecision из C++
Обьясню на примере:
есть число 1.200002
Нужно вывести его же(число) только с точностью до сотых - 1.20
Как сделать ?

Оффтоп:
aleksandy, что у тебя за нарушения в характеристиках ?
aleksandy
Новичок

Регистрация: 01.04.2010
Сообщений: 67
Рейтинг сообщений: 13
Нарушения: 0/1 (10)
Репутация: 12


Добавлено через 1 час 39 минут
Еще вопрос появился.
У меня вот слушатель событий для кнопок - ActionListener
Я пытаюсь теперь сделать так, чтобы еще был слушатель нажатий клавиш. Класс-слушатель выглядит так:
Java
1
public class Listener extends KeyAdapter implements ActionListener
Я в нем определил метод actionPerformed() и keyPressed().
Мне нужно, чтобы когда нажимается клавиша на клавиатуре, то нажималась кнопка на панели.
Java
1
2
3
4
5
6
7
    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() > KeyEvent.VK_0 && e.getKeyCode() < KeyEvent.VK_9) {
            System.out.println(e.getSource().toString());
            area.append(String.valueOf(e.getKeyChar()));
            panel.paint(panel.getGraphics());
        }
    }
Проблема заключается в том, что реакция на нажатия клавиш появляется только после того, как щелкнуть мышью по любой кнопке. Я так понимаю только тогда пробуждается метод keyPressed(). Помогите, может я чего не так понимаю.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
11.06.2010, 07:52
Цитата Сообщение от Lendon Посмотреть сообщение
Как задать точность в числе с двойной точностью ?
Java
1
String.format("%.2f", yourDoubleValue)
, где 2 - это необходимая точность. Еще можно использовать BigDecimal, если нужны точные вычисления.

Добавлено через 12 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public static void main(String[] args) throws Exception {
    final JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setLocationRelativeTo(null);
    f.setLayout(new FlowLayout());
    final JButton b1 = new JButton("11111");
    final JButton b2 = new JButton("22222");
    ActionListener al = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println(e.getSource());
        }
    };
    b1.addActionListener(al);
    b2.addActionListener(al);
    f.add(b1);
    f.add(b2);
    KeyListener kl = new KeyAdapter() {
 
        @Override
        public void keyReleased(KeyEvent e) {
            System.out.println(e.getSource());
            if (e.getKeyCode() == KeyEvent.VK_Q) {
                b1.doClick();
                b2.doClick();
            }
        }
    };
    f.setFocusable(true);
    f.addKeyListener(kl);
    f.pack();
    f.setVisible(true);
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.06.2010, 07:52
Помогаю со студенческими работами здесь

Вопросы..
Всем добрый день. Пожалуйста подскажите ответы на следующие вопросы, хочу сразу извиниться за свою недальнозоркость и ламачество :(, совсем...

Qt Вопросы
Подскажите, пожалуйста в С# есть Tool Strip Menu(типа кнопочки вверху окна например Файл, Правка, ... , Справка), что похожего есть в Qt и...

Вопросы по C#
Люди помогите мне. Я недавно установил Visual Studio 2008 Express Edition. Я раньше писал на Delphi. Я самоучка. Немогу показать Form2. В...

Вопросы
Всем привет! Есть два вопроса. 1.Есть кнопка которая вызывает форму. Теперь мне уже не надо чтоб она вызывала и я удалил обработчик...

Вопросы по C++
Пожалуй начну) Можно ли в С++, обьявить определенному элементу массива определенное значение, как можно в пхп? Приведу пример: php:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru