2012-02-14 5 views
2

У меня есть агенты java, которые открывают графический интерфейс. Когда агент завершен, GUI остается открытым. Когда я снова запускаю агент или запускаю другой агент, я хотел бы снова использовать тот же графический интерфейс.Поделитесь графическим интерфейсом (JFrame) между вызовами агента

Есть ли способ обнаружить открытый графический интерфейс или обмен ссылками между агентами?

ответ

4

Вы можете использовать класс Window и перебирать все созданные экземпляры

/** 
    * Returns an array of all {@code Window}s, both owned and ownerless, 
    * created by this application. 
    * If called from an applet, the array includes only the {@code Window}s 
    * accessible by that applet. 
    * <p> 
    * <b>Warning:</b> this method may return system created windows, such 
    * as a print dialog. Applications should not assume the existence of 
    * these dialogs, nor should an application assume anything about these 
    * dialogs such as component positions, <code>LayoutManager</code>s 
    * or serialization. 
    * 
    * @see Frame#getFrames 
    * @see Window#getOwnerlessWindows 
    * 
    * @since 1.6 
    */ 
public static Window[] getWindows() 

также Рама имеет

public static Frame[] getFrames() 
+0

ли это на самом деле работает в контексте с Lotus Notes? Агенты обычно являются отдельными объектами. –

+1

@Simon O'Doherty Я думаю, что это не имеет ничего общего с агентами, агент возвращает объект, который вы выбрали (Stas + 1) – mKorbel

+0

Я сейчас пытаюсь. Я нахожу рамки. Но утилизация фрейма не называется (по крайней мере, это происходит так), поэтому я просто закрываю существующий фрейм. Кажется, это нормально работает –

Смежные вопросы