0

我需要实现一个例程,以确保应用程序永远不会失去对其他应用程序的关注(但是当它被最小化时,我不应该强迫它回来)。所以我决定在主窗口中实现WindowFocusListener:

public class DialogoPrincipal extends JFrame implements WindowFocusListener {

    public DialogoPrincipal() {
        initComponents();
        this.addWindowFocusListener(this);
    }

    @Override
    public void windowGainedFocus(WindowEvent e) {
        //Do nothing
    }

    @Override
    public void windowLostFocus(WindowEvent e) {
        this.toFront();
    }

    /*hidden code*/
}

当主窗口不显示任何子窗口时,它工作得很好。但是当打开一些子窗口时,我无法强制应用程序获得焦点。有没有一种方法可以强制应用程序中的焦点,即使应用程序有子窗口,或者我需要在所有对话框中实现 WindowFocusListener?如果我需要实现这个接口,我该怎么做才能让 JOptionPane.showMessageDialog(...) 不失去焦点?

4

2 回答 2

3
于 2013-01-04T13:27:20.827 回答
0

我解决了它实现了一个由所有子窗口继承的抽象类:

public abstract class DialogoFocado extends JDialog implements WindowFocusListener {

    public DialogoFocado(Frame owner) {
        super(owner);
        this.addWindowFocusListener(this);
    }

    @Override
    public void windowGainedFocus(WindowEvent e) {
    }

    @Override
    public void windowLostFocus(WindowEvent e) {
        this.toFront();
    }
}
于 2013-01-05T18:05:45.107 回答