Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Диологовое окно / 11 сообщений из 11, страница 1 из 1
16.08.2005, 13:02
    #33217790
:]
:]
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
Я в Java новичок
помогите разобраться...
есть класс, в нем метод m1, есть диалог который вызывается из t1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 class  t1
{
 LQDialog LDialog;

  public   void  m1(){
 }
}

 public   class  LDialog
     extends  JDialog {
}
мне надо чтобы при нажатии клавиши в открывшимся диалоговом окне вызывался метод m1 из класса t1... Как сделать не могу понять
...
Рейтинг: 0 / 0
16.08.2005, 13:06
    #33217806
Я
Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
Не понятно в чем затруднение.
Делаешь свой диалог, помещаешь туда кнопку, вешаешь на нее слушателя, который будет вызывать твой метод m1.
На каком этапе возникли сложности?
...
Рейтинг: 0 / 0
16.08.2005, 13:10
    #33217828
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
могу предположить, что в объект LDialog надо передать ссылку на объект, метод которого надо дернуть :)
в конструкторе, например.
или еще как

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 class  ClassOne {
 public   void  boo() {
}

 class  ClassTwo {
 private  ClassOne one;
 public  ClassTwo(ClassOne one) {
 this .one = one;
}
 public   void  callBoo() {
one.boo();
}
}


}


я не знаю, как там показывается JDialog - но в любом случае можно переопределить этот его метод и вызывать в нем m1.
...
Рейтинг: 0 / 0
16.08.2005, 13:36
    #33217915
Я
Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 class  t1 {
    LDialog lDialog;
     int  m =  1 ;

     public  t1 () {
        lDialog =  new  LDialog( this );
        lDialog.pack();
        lDialog.setVisible(true);
    }

     public   void  m1() {
        System.out.println(m);
    }
}
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 import  javax.swing.*;
 import  java.awt.event.ActionListener;
 import  java.awt.event.ActionEvent;

 public   class  LDialog  extends  JDialog {

    t1 obj;

     public  LDialog(t1 objp) {
         this .obj = objp;
        JButton but =  new  JButton("Test");
         this .getContentPane().add(but);
        but.addActionListener( new  ActionListener() {
                 public   void  actionPerformed(ActionEvent e) {
                     obj.m1();
                }
            }
        );
    }
}
...
Рейтинг: 0 / 0
17.08.2005, 17:57
    #33221594
:]
:]
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
Спасибо!
Заработало
Но появилась одна поблемка... В JBuilder при переключении из редактирования кода в Designer выдает вот такое сообщение(пишу объекты и последнего поста):

Failed to create live value from private t1 obj;: null

Можно ли как то это побороть...
...
Рейтинг: 0 / 0
17.08.2005, 18:12
    #33221623
gaper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
наверное, либо открыть t1 (public), либо добавить конструктор LDialog без параметров.
...
Рейтинг: 0 / 0
17.08.2005, 18:53
    #33221730
:]
:]
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
так сделал его public тот же эфект...
Failed to create live value from public t1 obj;: null
просто добавить еще один конструктор но без параметров?
ничего не дает это... ту же ошибочу пишет...
...
Рейтинг: 0 / 0
17.08.2005, 20:03
    #33221835
gaper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
это было только предположение. Можно было сделать вывод, что билдер не может построить экземпляр объекта. Самыми вероятными представлялись именно перечисленные факторы.

Можно попробовать (это опять же предположение) разцепить классы. Пусть диалог зависит от t1, но t1 можно сделать диалогонезависимым :) -- вынести код создания диалога куда-нибудь ещё.

Т.е. я предлагаю конструктор t1 превратить в метод какого-то другого класса. Например, можно добавить статический метод к диалогу.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 public   class  LDialog  extends  JDialog {
     public   static  showDialog () {
        t1 t =  new  t1()      
        lDialog =  new  LDialog(t);
        lDialog.pack();
        lDialog.setVisible(true);
    }
    ...
...
Рейтинг: 0 / 0
18.08.2005, 13:46
    #33223067
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
Метод 3: забить на GUI-дизайнер
...
Рейтинг: 0 / 0
18.08.2005, 14:20
    #33223153
Я
Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
Метод 4: Удалить JBuilder. Дистрибутив сжечь :)
...
Рейтинг: 0 / 0
19.08.2005, 19:49
    #33226194
:]
:]
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диологовое окно
Метод самый лучший- фсе фтопку.
Но к сажелению мне не подходит.
Надо билдеровский проект по техзаданию....
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Диологовое окно / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]