5
मेरे पास मुख्य फ्रेम और दूसरा फ्रेम है जो मुख्य फ्रेम के साथ माता-पिता के रूप में है।मॉडेल डायलॉग को मेरे दूसरे शीर्ष-स्तरीय फ़्रेम को अवरोधित करने के लिए कैसे करें
लेकिन अब दोनों मोडल संवाद द्वारा अवरुद्ध फ्रेम हैं।
मुख्य फ्रेम में एक मोडल संवाद होने पर मैं दूसरी फ्रेम को कैसे पहुंच सकता हूं?
public class Example extends JFrame {
public Example() {
super("MainFrame");
JButton btn1 = new JButton(new AbstractAction("Frame") {
@Override
public void actionPerformed(ActionEvent e) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame("Frame");
f.getContentPane().add(new JLabel("This shoud be not blocked by ModalDialog."));
f.setLocation(50, 200);
f.setSize(300, 200);
f.setVisible(true);
}
});
}
});
JButton btn2 = new JButton(new AbstractAction("Modal") {
@Override
public void actionPerformed(ActionEvent e) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JDialog d = new JDialog(Example.this, "Dialog");
d.getContentPane().add(new JLabel("This shoud block only MainFrame."));
d.setModal(true);
d.setLocation(50, 100);
d.setSize(300, 200);
d.setVisible(true);
}
});
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(btn1, BorderLayout.NORTH);
getContentPane().add(new JLabel("MainFrame"), BorderLayout.CENTER);
getContentPane().add(btn2, BorderLayout.SOUTH);
setLocation(50, 50);
setSize(200, 150);
btn1.doClick();
btn2.doClick();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Example().setVisible(true);
}
});
}
}
+1, यह भी देखें [AWT साधन] (http://docs.oracle.com/javase/7/docs/api/java/awt/doc-files/Modality.html) – aterai