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

Ошибка при выборе в контекстном меню

06.05.2022, 11:07. Показов 319. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создано следующее меню.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
                JMenu mMenu1 = new JMenu("File");
        JMenuItem menuItem1 = new JMenuItem("Open");
        JMenuItem menuItem2 = new JMenuItem("Exit");
        mMenu1.add(menuItem1);
        menuItem1.addActionListener(this);
        mMenu1.add(menuItem2);
        menuItem2.addActionListener(this);
        
        JMenu mMenu2 = new JMenu("Work");
        JMenuItem menuItem3 = new JMenuItem("Sort");
        JMenuItem menuItem4 = new JMenuItem("Find");
        
        mMenu2.add(menuItem3);
        menuItem3.addActionListener(this);
        mMenu2.add(menuItem4);
        menuItem4.addActionListener(this);
        
        JMenuBar mBar = new JMenuBar();
        mBar.add(mMenu1);
        mBar.add(mMenu2);
        setJMenuBar(mBar);
И есть сам обработчик нажатия кнопки. Но почему-то при нажатии на любой вариант в меню всегда выполняется, то что происходит при нажатии на кнопку Open и только потом уже выполняется нужное действие для кнопки. Например нажимаю Exit, а он сначала просит ввести файл и только после ввода файла происходит закрытие программы. Я пробовал для написать
if () {}
else if () {}
else if () {}
else if () {}
но он ругается на else первый и просит его убрать. Подскажите, что неверно.
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
    public void actionPerformed(ActionEvent e)
    {
        System.out.println("Menu event:" + e);
        String cmd = e.getActionCommand();
        if (cmd.equals("Open"));
        {
            String file="";
            file = JOptionPane.showInputDialog("Name of data file?");
            System.out.println(file);
            try 
            {
                readFile(file);
                txt.setLineWrap(true);
                txt.setWrapStyleWord(true);
                txt.append("Array ");
                for (int i = 0; i<array.length;i++)
                {
                    txt.append(array[i] + " ");
                }
                txt.append("\n");
                label.setText("Числа из файла:");
                 JOptionPane.showMessageDialog(null,
                         "Файл успешно прочитан.",
                         "Окно сообщения",
                         JOptionPane.INFORMATION_MESSAGE);
            } 
            catch (FileNotFoundException e1) 
            {
                 JOptionPane.showMessageDialog(null,
                         "Файл с таким названием не найден.",
                         "Окно ошибки",
                         JOptionPane.ERROR_MESSAGE);            
            } 
            
            catch (IOException e1) 
            {               
                 JOptionPane.showMessageDialog(null,
                         "Файл с таким названием не найден.",
                         "Окно ошибки",
                         JOptionPane.ERROR_MESSAGE);
            }           
        }
        if (cmd.equals("Exit"))
        {
            label.setText("Exit press");
            dispose();
            System.exit(0);         
        }
        if (cmd.equals("Sort"))
        {
            label.setText("Sort press");
            txt.setLineWrap(true);
            txt.setWrapStyleWord(true);
            txt.append("Sorted ");
            for (int i = 0; i<array.length;i++)
            {
                txt.append(array[i] + " ");
            }
            txt.append("\n");       
        }
        
        if (cmd.equals("Find"))
        {
            label.setText("Find press");
            String val = "";
            val = JOptionPane.showInputDialog("Value for search?");
            System.out.println(val);
            label.setText("Find value " + val);
        }
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2022, 11:07
Ответы с готовыми решениями:

При выборе в контекстном меню "Расположение файла" не открывает папку исходного файла
Здравствуйте Уважаемые профессионалы помогите пожалуйста разобраться с проблемой! Проблема такова: &quot;При выборе в контекстном меню...

Ошибка диалогового окна при выборе контекстного меню файла
Здравствуйте! Тренируюсь, пишу программку типа блокнота. При открытии (или сохранении) файла, если в диалоговом окне выбора файла...

Ошибка в контекстном меню AppCompatActivity
Здравствуйте! Я только начинаю изучать разработку под Android. Использую IDE Android Studio 2.2.2, встроенный эмулятор, Android SDK...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2022, 11:07
Помогаю со студенческими работами здесь

Win2003 виснет при контекстном меню
Вроде ничего не устанавливал а тут вдруг Win начинает наглухо виснуть секунд на 10 при вызове контекстного меню или при нажатии Пуск ...

Как при нажатии пункта в контекстном меню вывести что то на окно
Как при нажатии пункта в контекстном меню вывести что то на окно, читал документацию не нашёл. например нажатие на эксель пишет в label...

Установка галочки в пункте меню при выборе данного пункта меню
Есть меню,надо,чтобы при нажатии на пункт меню напротив этого пункта ставилась галочка. Знаю про функцию checkmenuitem,но она устанавливает...

Как реализовать закрытие меню при выборе пункта меню?
Здравствуйте! Как сделать так, чтобы мобильное меню закрывалось при выборе пункта меню? Код прилагаю ниже: ...

с системным меню в три уровня вложенности (при выборе пункта меню выдаётся окно с сообщением)
Разработать Windows-приложения: а) с системным меню в три уровня вложенности (при выборе пункта меню выдаётся окно с сообщением), б) в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru