Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование экземпляра JFrame, из разных файлов *.java 
:(
    Опции темы
SherbAnt
Дата 9.12.2009, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.1.2007

Репутация: нет
Всего: 3



Доброго времени суток, профессионалы.
Помогите, начинающему java падавану. smile 
В программе имеется экземпляр gui класса "Gui" унаследованного от JFrame (Swing). Есть несколько классов, они же отдельные *.java файлы.
Как использовать один и тот же экземпляр gui из разных классов? Например вызывать некие методы.

например, у меня есть класс Gui
Код

public class Gui extends JFrame{
    private JLabel label = new JLabel("Hello");
        
    public Gui(){
        super("");
        this.setBounds(0,0,250,150);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);
        Container container = this.getContentPane();
        container.setLayout(new GridBagLayout());
        container.add(label);
    }
        
        public void setText(String a){]
                this.label.setText(a);
        }
}


Хочу создать его экземпляр в, например, Main'е
Код

public class Main {
    public static void main(String[] args){
                Gui gui = new Gui();
                gui.setText("Бла, бла");
        }
}


... и потом пользовать в, например Dig'е

Код

public class Dig{
        public void setGuiText(String a){]
                gui.setText("Бла, бла");
        }
}


Если в Dig'е создавать свой экземпляр класса Gui, то создается новое окно. Может можно как то передавать ссылку на экземпляр, или что то такое?
Краем уха слышал про делегирование и MVC, но разобраться самостоятельно не получается.
PM MAIL Skype   Вверх
Galaran
Дата 9.12.2009, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 25.5.2009

Репутация: 1
Всего: 2



Например так:

Код

public class Gui extends JFrame {

      private JLabel label = new JLabel("Hello");

      public Gui() {
            super("");
            this.setBounds(0, 0, 250, 150);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setResizable(false);
            Container container = this.getContentPane();
            container.setLayout(new GridBagLayout());
            container.add(label);
      }

      public void setText(String a) {
            this.label.setText(a);
      }

}


Код

public class Main {

      public static void main(String[] args) throws Exception {
            Gui gui = new Gui();
            gui.setText("Бла, бла");
            Dig dig = new Dig(gui);
            gui.setVisible(true);
            
            Thread.sleep(3000);
            dig.setGuiText("Бла, бла, бла");
      }

}


Код

public class Dig {
      
      private Gui gui;

      public Dig(Gui gui) {
            this.gui = gui;
      }

      public void setGuiText(String a) {
            gui.setText(a);
      }

}


Это сообщение отредактировал(а) Galaran - 9.12.2009, 02:24
PM MAIL   Вверх
SherbAnt
Дата 9.12.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.1.2007

Репутация: нет
Всего: 3



 smile блин. как же в голову то не пришло... ведь элементарно... Спасибо большое!
А зачем в Main'е это?
Код

Thread.sleep(3000);

зачем ждать?

PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0713 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.