powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / InternalFrames - не посылается internalFrameActivated после создания
1 сообщений из 1, страница 1 из 1
InternalFrames - не посылается internalFrameActivated после создания
    #34787664
apolyakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день!

Есть проблема. Создаю окошко, в нем 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
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / InternalFrames - не посылается internalFrameActivated после создания
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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