Как заставить модальный JDialog выполнять код сразу после показа - PullRequest
3 голосов
/ 28 декабря 2010

Хорошо, у меня есть список объектов. Мне нужно показать модальный JDialog, а затем передать ему этот список объектов и заставить его действовать на них. Проблема в том, что когда я вызываю .show (), он захватывает EDT. В идеале можно было бы передать список конструктору, а затем, когда появится диалоговое окно, выполнить соответствующую функцию. В C # я бы использовал для этого событие Loaded, но как это сделать, JDialog избегает меня.

Мысли

Ответы [ 2 ]

4 голосов
/ 28 декабря 2010
JDialog dialog = new JDialog(...);
...
dialog.addComponentListener(new ComponentAdapter()
{
    public void componentShown(ComponentEvent e)
    {
        System.out.println("Time to do something");
    }
});
dialog.setVisible( true );
1 голос
/ 28 декабря 2010
JDialog dialog = new JDialog(...);
dialog.addWindowListener(new WindowAdaper() {
    @Override
    public void windowOpened(WindowEvent e) {
        super.windowOpened(e);
        // do something
    }
});

Вы поняли.

...