Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / как правильно реализовать перехват событий? / 5 сообщений из 5, страница 1 из 1
17.11.2005, 10:32
    #33383337
Danaika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно реализовать перехват событий?
ниже приведен листинг, объясните пожалуста почему событие нажатия на кнопку срабатывает, даже когда это событие не произошло(например при запуске программки и когда просто разворачиваешь свёрнутое окно фрэйма)?



Код: plaintext
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.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
 import  java.awt.*;                              
 import  java.awt.event.WindowAdapter;
 import  java.awt.event.ComponentEvent;
 import  java.io.*;
 import  java.lang.*;
 import  java.lang.String;
 import  java.lang.Math.*;    
 import  javax.swing.*;
 public   class  Lab2  extends  Frame
{
    TextArea txt_mas;
     static  TextArea txt_smas;
     static  TextArea txt_mi;
    Button get_mas;
     static   Double  mas[];
     static   int  Mi[]={ 0 , 0 , 0 , 0 , 0 , 0 };
     static   double  h;
     static   int  K;
     static  FileDialog dialog;
     public  Lab2()
    {
        get_mas= new  Button("Get Array from File");
        get_mas.setBounds( 10 , 40 ,  120 ,  25 );
        
         super .add(get_mas);
        txt_mas= new  TextArea();
        txt_mas.setBounds( 10 , 80 , 60 , 630 );
         super .add(txt_mas);
        txt_smas= new  TextArea();
        txt_smas.setBounds( 80 , 80 , 60 , 630 );
         super .add(txt_smas);
        txt_mi= new  TextArea();
        txt_mi.setBounds( 160 , 80 , 60 , 110 );
         super .add(txt_mi);
          int  width =  1020 ;
          int  height =  850 ;
          super .setSize(width, height);
         super .setLayout( null );
          super .setVisible(true);                                                                                                                  
    }
     public   boolean  handleEvent(Event evt)
    {
         if (evt.id==Event.WINDOW_DESTROY )
        {
            dispose();      
             return  true;
        }
         else   if (evt.target.equals(get_mas))
        {    
                
            dialog.setDirectory("D:\\5-course\\EXP\\Lab02");
            dialog.show();
            txt_mas.setText("");
             try 
            {
                String slash = "/";
                File file= new  File(dialog.getDirectory() + slash + dialog.getFile());
                FileInputStream fis= new  FileInputStream(file);
                DataInputStream dis= new  DataInputStream(fis);
                String line=dis.readLine();
                String []tmp = line.split(",");
                mas =  new   Double  [tmp.length];
                 for ( int  i= 0 ;i<mas.length;i++)
                {
                    mas[i] =  new   Double (tmp[i]);    
                    txt_mas.appendText(String.valueOf(mas[i])+"\n");
                }
                               
                 this .repaint();
            }
             catch (IOException e)
            {
                System.out.println("error = "+e);
            }        
             return  true;
        }
         else 
        return   super .handleEvent(evt);
    }
     public   static   void  main(String args[]) 
    {        
        Lab2 lab= new  Lab2();       
        dialog= new  FileDialog(lab,"Open");
    }
     public   void  paint(Graphics g)
    {
        //тут я рисую всякие графики
    }
}
...
Рейтинг: 0 / 0
17.11.2005, 11:47
    #33383588
KPIIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно реализовать перехват событий?
А где слушатель присоединяется к кнопке???
...
Рейтинг: 0 / 0
17.11.2005, 13:03
    #33383906
Danaika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно реализовать перехват событий?
вообще-то у меня тут нет слушателя, я попыталась реализовать через handleevent
насколько я знаю так можно сделать или я ошибаюсь?

а если реализовывать через слушателя это нужно добавлять "emplement ActionListener"?
...
Рейтинг: 0 / 0
17.11.2005, 17:54
    #33385034
aquasnake
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно реализовать перехват событий?
Нужно выполнять действия по событию нажатия кнопки, а не по любому событию (кроме WINDOW_DESTROY), адрессованому кнопке, т.е. нужно проверять событие не только на target, но на id.
...
Рейтинг: 0 / 0
17.11.2005, 18:07
    #33385094
KPIIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно реализовать перехват событий?
handleEvent - deprecated еще с jdk1.1
common practiсe - подсоединяйте соответствующий слушатель к нужному компоненту
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / как правильно реализовать перехват событий? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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