Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 2
Регистрация: 26.07.2009
Сообщений: 64

Main menu - в отдельный класс

13.05.2010, 16:46. Показов 2112. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

Было у меня приложеньице - фрейм, и в нем меню. Меню формировалось из фрейма и вызывало методы фрейма.
Решил я сделать это меню отдельным классом, так чтобы из меню вызывались public-методы фрейма. Меню в фрейме отображается, но не может вызывать методы из фрейма.
Пробовал по-разному. Или ругается по поводу что вызываемый метод должен быть статическим, или получаю 'myFrame cannot be resolved'.

Вопросов два:
1. Есть ли смысл этим вообще заниматься? На сколько это оправдано и применяется ли (вообще и вами в частности)?
2. Если заниматься этим есть смысл, то как сделать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.05.2010, 16:46
Ответы с готовыми решениями:

Как правильно работать с GUI , класс main и класс окна
Здравствуйте , вот только не давно начал работать с пользовательским интерфейсом. Сейчас пытаюсь сделать программу , работаю в NetBeans....

Обязательно ли обработчик событий выносить в отдельный класс?
Обязательно ли обработчик событий выносить в отдельный класс?

Отдельный класс для всех панелей - такое возможно?
Мне необходимо добавить несколько панелей в окно. Очень хочется вынести код по панелям в отдельный класс. Только я не знаю как это...

2
1 / 1 / 3
Регистрация: 03.08.2008
Сообщений: 390
13.05.2010, 17:11
Лучший ответ Сообщение было отмечено rotesbyte как решение

Решение

Ответа тоже два )
1. Есть смысл заниматся. Оправдывает себя (когда меню, панель инструментов, фрейм уж слишком толстые получаются и их нуно по разным классам пораскидывать), применялось мной и другими разработчиками в часности.
2. Пример как это можно делать, но можно и другими способами...
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
public class MainFrame extends JFrame {
 
    private MainFrame mainFrame;
 
    public MainFrame() {
         ......
    }
 
    public synchronized static MainFrame getInstance() {
        if (mainFrame==null) {
           mainFrame = new MainFrame();
        } 
        return mainFrame;
    }
  
 .....
 
    public void method1() {
        ....
    }
 
    public void method2() {
        ....
    }
 
}
в любом месте твоей программы...
Java
1
2
  MainFrame.getInstance().method1();
...
или если дёргаешь кучу методов сразу то моно так...
Java
1
2
3
  MainFrame f = MainFrame.getInstance();
  f.method1();
  f.method2();
теперь к своему фрейму ты можешь достукиваться от куда угодно.....

И ещё ползуйся паттернами (шаблонами)....
Singleton такой шаблон есть, вот здесь он и сыграл...
0
1 / 1 / 3
Регистрация: 03.08.2008
Сообщений: 390
13.05.2010, 17:13
Ошибочка

строчку
private MainFrame mainFrame;

нуно заменить на строчку
private static MainFrame mainFrame;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2010, 17:13
Помогаю со студенческими работами здесь

Вызов метода main и главный класс
На сколько я понял все функции(методы) должны принадлежать какому-либо классу и метод main не является исключением. static делает его...

Запустить скомпилированный класс Main.class из Java кода
Доброго времени суток! Нужно запустить Main.class из Java кода. Код, который привел ниже, с компиляцией Main.java справляется неплохо. А...

Uncompilable source code at javaapplication36.SwingForma.main(Main.java:29)
package javaapplication36; import java.awt.*; import java.io.*; import java.applet.*; import javax.swing.*; import...

Ошибка no main class (заголовок com/javafx/main/Main) на другом компьютере
У меня возникла такая проблема. Если я создаю пример JavaFX приложения в Netbeans и компилирую его как устанавливаемый exe (Installing...

Перенос всех вывод в консоли из Main в отдельный класс Menu
Всем привет! Помогите, пожалуйста, в новый класс "Menu" добавить все выводы на консоль, убрав их из Main. Никогда так не делал, оставлял...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru