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

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

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

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

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

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

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

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

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

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

2
1 / 1 / 3
Регистрация: 03.08.2008
Сообщений: 390
13.05.2010, 17:11 2
Лучший ответ Сообщение было отмечено 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 3
Ошибочка

строчку
private MainFrame mainFrame;

нуно заменить на строчку
private static MainFrame mainFrame;
0
13.05.2010, 17:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2010, 17:13
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru