Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / InternalFrames - не посылается internalFrameActivated после создания / 1 сообщений из 1, страница 1 из 1
10.09.2007, 11:39:23
    #34787664
apolyakov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InternalFrames - не посылается internalFrameActivated после создания
добрый день!

Есть проблема. Создаю окошко, в нем JDesktopPane, далее создаю внутренний фрейм. После создания фокус не передается во внутренний фрейм. Все сделано как в How to Use Internal Frames
Более того, после создания фрейма он не активируется (евент frameActivated не кидается). но стоит ткнуть мышкой и все ок. Есть интересный момент. Если создавать (или активировать) фрейм в отдельном треде через некоторое время (закомментаренный кусок), то все ок!. Похоже на баг в jdk.. Вот код:
Код: 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.
 public   class  InternalFrameDemo  extends  JFrame
                                implements  ActionListener {
    JDesktopPane desktop;

     public  InternalFrameDemo() {
         super ("InternalFrameDemo");

        //Make the big window be indented 50 pixels from each edge
        //of the screen.
         int  inset =  50 ;
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(inset, inset,
                  screenSize.width  - inset* 2 ,
                  screenSize.height - inset* 2 );

        //Set up the GUI.
        desktop =  new  JDesktopPane(); //a specialized layered pane
        setContentPane(desktop);
        setJMenuBar(createMenuBar());
        createFrame(); //create first "window"
    }
    //Create a new internal frame.
     protected   void  createFrame() {
         final  MyInternalFrame frame =  new  MyInternalFrame();
        frame.setVisible(true); //necessary as of 1.3
        desktop.add(frame);
        /*
        Thread setter = new Thread(){
        	public void run() {
        		try {
					sleep(1000);
				} catch (InterruptedException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
        		try {
					frame.setSelected(true);
				} catch (PropertyVetoException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
        	}
        };
        setter.start();
        */
        frame.addInternalFrameListener( new  InternalFrameListener()
        {
			 public   void  internalFrameActivated(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				System.out.println("Activated");
			}
			 public   void  internalFrameDeactivated(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				System.out.println("Deactivated");
			}
			 public   void  internalFrameDeiconified(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				
			}
			 public   void  internalFrameIconified(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				
			}
			 public   void  internalFrameOpened(InternalFrameEvent e) {
				// TODO Auto-generated method stub
			}
			 public   void  internalFrameClosed(InternalFrameEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			 public   void  internalFrameClosing(InternalFrameEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			
        });
        frame.show();
         try  {
			frame.setSelected(true);
			System.out.println("request focus returned: " + frame.requestFocusInWindow());
		}  catch  (PropertyVetoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
...
}
Моя проблема описана еще и вот тут: сановский форум
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / InternalFrames - не посылается internalFrameActivated после создания / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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