Originariamente inviato da TheBestNeo
Premetto che ho cambiato approccio e che quindi ho risolto, il mio problema consisteva di non poter passare il parent ad una dialog e che quindi, pur settando il modal a true, non rimaneva in cima allo stack delle finestre.
Prova questo:
codice:
import java.awt.*;
import javax.swing.*;
public class Prova {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f1 = new JFrame("aaa");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setLocation(0, 0);
f1.setSize(200, 200);
f1.getContentPane().add(new JButton("1"));
f1.setVisible(true);
JFrame f2 = new JFrame("bbb");
f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f2.setLocation(300, 0);
f2.setSize(200, 200);
f2.getContentPane().add(new JButton("2"));
f2.setVisible(true);
JDialog d = new JDialog((Frame) null, "Prova dialog", true);
d.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
d.setLocation(300, 300);
d.setSize(200, 200);
d.setVisible(true);
}
});
}
}
Fino a quando la dialog è aperta, prova ad agire sui frame ....