Форум программистов, компьютерный форум, киберфорум
Java ME (J2ME)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для jambas92
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315

Обработчик событий кнопки (найти ошибку)

22.11.2011, 21:36. Показов 2020. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Надо написать простой калькулятор, один Lable для вывода значения, два TextField для введения данных, и четыре простых математических функции плюс, минус, умножить и поделить. В моем коде не работает "слушатель". Я его прописал в своем коде, но я думаю что он находится не в том месте кода. Помогите найти ошибку пожалуйста!

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
 
public class calcal extends JPanel implements ActionListener{
    
    private JLabel mainLabel;
    
    private JButton butP;
    private JButton butM;
    private JButton butU;
    private JButton butD;
    
    private JTextField  textEnter1;
    private JTextField  textEnter2;
    
    public void actionPerformed(ActionEvent ae){
        int x = Integer.parseInt(textEnter1.getText());
        int y = Integer.parseInt(textEnter2.getText());
            
        String x1 = Integer.toString(x);
        String y1 = Integer.toString(y);
            
        if (ae.getActionCommand().equals("butP")){
                
            mainLabel.setText(x1 + y1);   
        }
        else if (ae.getActionCommand().equals("butM")){
                
            mainLabel.setText(x1 + y1);
        }
    }
    
    public static void main(String[] argc){
        
        JFrame frame = new JFrame("Calculator");
        
        frame.setContentPane(new calcal());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();    // Adjust the size of the window
        frame.setVisible(true);
    }
    public calcal(){
            
        setLayout(new GridLayout(1, 3));
        setBackground(Color.white);
            
        mainLabel = new JLabel("1234");
            
        mainLabel.setVerticalTextPosition(JLabel.BOTTOM);
        mainLabel.setHorizontalTextPosition(JLabel.CENTER);
        mainLabel.setFont(new Font("Serif", Font.BOLD, 16));
 
        mainLabel.setHorizontalAlignment(JLabel.CENTER);
            
        add(mainLabel);
            
        butP = new JButton("+");
        butM = new JButton("-");
        butU = new JButton("*");
        butD = new JButton("/");
            
        butP.setVerticalTextPosition(AbstractButton.CENTER);
        butP.setHorizontalTextPosition(AbstractButton.LEFT);
        butM.setVerticalTextPosition(AbstractButton.CENTER);
        butM.setHorizontalTextPosition(AbstractButton.LEFT);
            
        butU.setVerticalTextPosition(AbstractButton.CENTER);
        butU.setHorizontalTextPosition(AbstractButton.LEFT);
        butD.setVerticalTextPosition(AbstractButton.CENTER);
        butD.setHorizontalTextPosition(AbstractButton.LEFT);
            
        butP.setForeground(Color.white);
        butM.setForeground(Color.white);
 
        butU.setForeground(Color.white);
        butD.setForeground(Color.white);
 
        add(butP);
        add(butM);
        add(butU);
        add(butD);
            
        textEnter1 = new JTextField(" ", 10);
            
        textEnter1.setHorizontalAlignment(JTextField.CENTER);
            
        JPanel panelText1 = new JPanel();
            
        panelText1.setBackground(Color.white);
        panelText1.add(textEnter1);
        add(panelText1);
            
        textEnter2 = new JTextField(" ", 10);
            
        textEnter2.setHorizontalAlignment(JTextField.CENTER);
            
        JPanel panelText2 = new JPanel();
            
        panelText2.setBackground(Color.white);
        panelText2.add(textEnter2);
        add(panelText2);
        }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2011, 21:36
Ответы с готовыми решениями:

Обработчик событий на нажатие кнопки
пишу кункулятор начинаю вешать обработчик событий на нажатие кнопки что бы при нажатии на кнопку появлялась в Edit цифра нажимаю на...

Обработчик событий динамического объекта кнопки
Здравствуйте! Я создал динамические объекты: button с обработчиком события и textBox1. Подскажите, пожалуйста, как написать так, чтоб было...

Обработчик событий нажатия кнопки в пределах формы
Здравствуйте. Помогите пожалуйста. При нажатии на кнопку создается объект класса. private void ToolStripMenuItem_Click(object sender,...

2
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.11.2011, 01:27
Тебе надо ActionListener подвесить на кнопки. butP.addActionListener(this); и так далее на остальные. "Слушатель" может находиться даже в отдельном классе, просто его надо присоединять к элементу на котором он будет слушать.
http://docs.oracle.com/javase/... intro.html
1
 Аватар для jambas92
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
23.11.2011, 17:44  [ТС]
mutagen, Я уже разобрался. Как ты и говорил просто надо было создать класс с обработчиками событий кнопки, и вызывать в кунструкторе
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2011, 17:44
Помогаю со студенческими работами здесь

Обработчик событий кнопки Login и проверка пользователя в БД
Добрый день! помогите пожалуйста понять что надо вставить в : public void actionPerformed(ActionEvent e) { } чтобы...

Назначить обработчик событий на кнопки в цикле foreach
Такой простой вопрос. Есть Аж целых 12 Toggle Button. Я их свел в массив и хочу добавить обработчик событий в цикле. Но что-то не ладится....

Как вызвать обработчик событий для кнопки в Delphi 7?
похожее нашел,но не уверен что то для кнопки Page Up или Page Down procedure TForm2.bOK(Sender: TObject); begin with (Sender as...

Обработчик событий для каждой кнопки из массива JButton
Здравствуйте. Есть массив кнопок JButton. При нажатии на любую из них, она должна поменять цвет. Так не получается, на 7 и 8 строках...

Как на разные кнопки назначить один и тот же обработчик событий?
PyQt Доброго времени суток, господа Как можно на разные кнопки назначить один и тот же обработчик событий, на шарпе это делалось за...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru