Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 10.12.2013
Сообщений: 29

Запись элементов нажатия кнопки в массив

13.05.2017, 23:44. Показов 1464. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Подскажите пожалуйста где я допустил ошибку, у мне надо получит четыре координаты нажатия мыши в окне фрейма. Мне программа пишет ошибку что не может присвоить значение конечной переменной
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
 
class TransparentComponentListener
        implements ComponentListener {
 
    public void componentResized(ComponentEvent e) {
        Component[] components = ((JFrame) e.getComponent())
                .getContentPane().getComponents();
        components[0].repaint();
    }
 
    public void componentMoved(ComponentEvent e) {
        componentResized(e);
    }
 
    public void componentShown(ComponentEvent e) {
        componentResized(e);
    }
 
    public void componentHidden(ComponentEvent e) {
        componentResized(e);
    }
}
 
 
    public class Scan
    {
 
        public static void main(String[] args)
        {
            final int count =0;
            final int i= 0;
            final int j =0;
            final int m[][]= new int [4][2];
            final JFrame forma = new JFrame("Форма 1");
            forma.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            forma.setSize(new Dimension(300, 300));
 
            JButton batton1 = new JButton("Кнопка");
            batton1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e)
                {
                    forma.setState(JFrame.ICONIFIED);
 
 
                    Timer timer = new Timer(50, new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e)
                        {
                            JButton b2 = new JButton("Обновить");
                            final JFrame forma2 = new JFrame("Форма2");
                            forma2.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
                            forma2.setSize(new Dimension(150, 150));
                            forma2.addComponentListener(new TransparentComponentListener());
                            Start app = new Start(forma2);
                            app.setLayout(new BorderLayout());
                            app.setVisible(true);
                            b2.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                    forma.setState(JFrame.NORMAL);
 
                                }
                            });
                            b2.addActionListener(new ActionListener() {
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                    forma2.dispose();
                                }
                            });
                            app.add(b2,"North" );
                            forma2.getContentPane().add("Center", app);
                            forma2.pack();
                            forma2.setExtendedState(JFrame.MAXIMIZED_BOTH);
                            forma2.show();
 
                            app.addMouseListener(new MouseListener() {
                                @Override
                                public void mouseClicked(MouseEvent e) {
 
                                    if(count<3){
                                    int x = e.getX();
                                    int y = e.getY();
                                        m[i][j]=x;
                                        m[i][j+1]=y;
                                        System.out.println("x = " + m[i][j]);
                                        System.out.println("y = " + m[i][j+1]);
                                        i++;    //здесь выдает ошибку
                                        count++;//ошибка тоже
 
 
                                }}
 
                                @Override
                                public void mousePressed(MouseEvent e) {
 
                                }
 
                                @Override
                                public void mouseReleased(MouseEvent e) {
 
                                }
 
                                @Override
                                public void mouseEntered(MouseEvent e) {
 
                                }
 
                                @Override
                                public void mouseExited(MouseEvent e) {
 
                                }
                            });
                            forma2.addWindowListener(new WindowAdapter() {
                                @Override
                                public void windowClosed(WindowEvent e) {
                                    super.windowClosed(e);
                                    forma.setState(Frame.NORMAL);
                                }
                            });
                            forma2.setLocationRelativeTo(null);
                            forma2.setVisible(true);
                        }
                    });
                    timer.setRepeats(false);
                    timer.start();
                }
            });
 
            JPanel panel = new JPanel();
            panel.add(batton1);
            forma.getContentPane().add(panel);
            forma.setLocationRelativeTo(null);
            forma.setVisible(true);
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2017, 23:44
Ответы с готовыми решениями:

Возврат значения кнопки при нажатия (массив кнопок)
Подскажите, пожалуйста, если это возможно : Есть массив кнопок, есть 1 обработчик события на 10 кнопок - при нажатии на 1 из 10 кнопок...

Появление и исчезание элементов после нажатия на кнопки
Начинаю изучать JavaScript. Хочу создать две кнопки, что бы при щелчке на одной кнопке появлялся один элемент (не важно какой), а при...

Отлов нажатия кнопки submit и блокировка последующего нажатия
Привет всем! Нужен код, который способствует блокировке нажатия кнопки после одного нажатия на нее. Спасибо. Добавлено через 54...

4
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
14.05.2017, 11:09
4 координаты чего?
полный текст ошибки покажи
0
0 / 0 / 1
Регистрация: 10.12.2013
Сообщений: 29
14.05.2017, 22:32  [ТС]
4 координаты нажатия мыши по фрейму
Ошибка:
Warning: (78, 35) java: show() in java.awt.Window has been deprecated
Error: (91, 41) java: cannot assign a value to final variable i
Error: (92, 41) java: cannot assign a value to final variable count
0
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
15.05.2017, 07:28
Цитата Сообщение от andruxai Посмотреть сообщение
4 координаты нажатия мыши по фрейму
Ошибка:
Error: (91, 41) java: cannot assign a value to final variable i
Error: (92, 41) java: cannot assign a value to final variable count
Надо переработать код, потому что используется внутренний класс, внешняя переменная,
да еще есть желание эту переменную изменять.
Выложите код для класс Start чтобы можно было переделать.
0
0 / 0 / 1
Регистрация: 10.12.2013
Сообщений: 29
16.05.2017, 00:30  [ТС]
Всем спасибо что откликнулись, разобрался в проблеме
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2017, 00:30
Помогаю со студенческими работами здесь

Как сделать,чтобы после (!именно после)нажатия кнопки"рассчитать" отображалась на экране запись
Люди добрые,прошу помощи! Как сделать,чтобы после (!именно после)нажатия кнопки&quot;рассчитать&quot; отображалась на экране запись...

Как из обработчика Form1_KeyPress вызвать событие для нажатия заданной по имени кнопки на форме (кнопки 0-9)
Пишу калькулятор. Есть несколько кнопок (Button) с цифрами и знаками. Для цифр имена кнопок: but_0, but_1, ... but_9 На все кнопки с...

Не запускается комп: индикатор возле кнопки Пуск на системнике зажегся только во время нажатия кнопки. После - не горит.
Просьба к форумчанам помочь в решении проблеммы. Сегодня вдруг отрубился комп во время работы. Если быть точнее, то аудио выключилось, а на...

Создайте обработчик события нажатия кнопки мыши на форме (Click), который будет устанавливать все кнопки в активный режи
Доброго времени суток! Помогите сделать задачу пожалуйста я полный ноль! (с описанием если можно:cry:) Уточните условие задания,...

Вызов процедуры нажатия кнопки с кнопки
При нажатии на Button1 создается экземпляр класса. Требуется, при нажатии на Button2 вызывать процедуру нажатия Button1, чтобы создался...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru