In Java, we can create modal dialog so that the main JFrame cannot be operated on until the modal dialog is closed. To realize this, we need to use one class in Java--JDialog. This class can be used to create an modal dialog. Example code : import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; public class Dialog extends JDialog{ public Dialog(){ super(); JPanel panel=new JPanel(); panel.add(new JLabel("Hello dialog")); this.getContentPane().add(panel); } public Dialog(MainFrame mf,String title,boolean modal){ super(mf,title,modal); this.setSize(300,200); JPanel panel=new JPanel(); panel.add(new JLabel("Hello dialog")); this.getContentPane().add(panel); this.setVisible(true); } } In the above code, we define a class Dialog which extends the JDialog class in Java. In the second constructor, there are three parameters. JFrame: parent frame,String-title on the dialog, boolean-whether the dialog is modal or non-modal. The next java code is to demonstrate how to open the Dialog. import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class MainFrame extends JFrame{ public MainFrame(){ this.setTitle("Dialog demo"); this.setSize(400,300); this.setLocationRelativeTo(null); JPanel panel=new JPanel(); JButton btn=new JButton("Open dialog"); btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { new Dialog(MainFrame.this,"Hello",true); } }); panel.add(btn); this.getContentPane().add(panel); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args){ new MainFrame().setVisible(true); } } When click on the button on MainFrame, the Dialog will show up and the MainFrame will become non-operable. This can be used when we want to get some information from the dialog before we can continue our operations on the MainFrame.