JDialog is a part Java swing package. The main purpose of the dialog is to add components to it. JDialog can be customized according to user need .
Constructor of the class are:
- JDialog() : creates an empty dialog without any title or any specified owner
- JDialog(Frame o) :creates an empty dialog with a specified frame as its owner
- JDialog(Frame o, String s) : creates an empty dialog with a specified frame as its owner
and a specified title
- JDialog(Window o) : creates an empty dialog with a specified window as its owner
- JDialog(Window o, String t) : creates an empty dialog with a specified window as its owner and specified title.
- JDialog(Dialog o) :creates an empty dialog with a specified dialog as its owner
- JDialog(Dialog o, String s) : creates an empty dialog with a specified dialog as its owner and specified title.
Commonly used methods
- setLayout(LayoutManager m) : sets the layout of the dialog to specified layout manager
- setJMenuBar(JMenuBar m) : sets the menubar of the dialog to specified menubar
- add(Component c): adds component to the dialog
- isVisible(boolean b): sets the visibility of the dialog, if value of the boolean is true then visible else invisible
- update(Graphics g) : calls the paint(g) function
- remove(Component c) : removes the component c
- getGraphics() : returns the graphics context of the component.
- getLayeredPane() : returns the layered pane for the dialog
- setContentPane(Container c) :sets the content pane for the dialog
- setLayeredPane(JLayeredPane l) : set the layered pane for the dialog
- setRootPane(JRootPane r) : sets the rootPane for the dialog
- getJMenuBar() : returns the menubar of the component
- setTransferHandler(TransferHandler n) : Sets the transferHandler property, which is a mechanism to support transfer of data into this component.
- setRootPaneCheckingEnabled(boolean enabled) : Sets whether calls to add and setLayout are forwarded to the contentPane.
- setRootPane(JRootPane root) :Sets the rootPane property of the dialog.
- setGlassPane(Component glass) : Sets the glassPane property of the dialog.
- repaint(long time, int x, int y, int width, int height): Repaints the specified rectangle of this component within time milliseconds.
- remove(Component c): Removes the specified component from the dialog.
- isRootPaneCheckingEnabled() : Returns whether calls to add and setLayout are forwarded to the contentPane or not .
- getTransferHandler() : returns the transferHandler property.
- getRootPane() : Returns the rootPane object for this dialog.
- getGlassPane() : Returns the glassPane object for this dialog.
- createRootPane() : Called by the constructor methods to create the default rootPane.
- addImpl(Component co, Object c, int i) : Adds the specified child Component to the dialog.
The following programs will illustrate the use of JDialog
1 .Program to create a simple JDialog
Java
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
static JFrame f;
public static void main(String[] args)
{
f = new JFrame( "frame" );
solve s = new solve();
JPanel p = new JPanel();
JButton b = new JButton( "click" );
b.addActionListener(s);
p.add(b);
f.add(p);
f.setSize( 400 , 400 );
f.show();
}
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (s.equals( "click" )) {
JDialog d = new JDialog(f, "dialog Box" );
JLabel l = new JLabel( "this is a dialog box" );
d.add(l);
d.setSize( 100 , 100 );
d.setVisible( true );
}
}
}
|
Output:

2. Program to create a dialog within a dialog
Java
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
static JFrame f;
static JDialog d, d1;
public static void main(String[] args)
{
f = new JFrame( "frame" );
solve s = new solve();
JPanel p = new JPanel();
JButton b = new JButton( "click" );
b.addActionListener(s);
p.add(b);
f.add(p);
f.setSize( 400 , 400 );
f.show();
}
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (s.equals( "click" )) {
d = new JDialog(f, "dialog Box" );
JLabel l = new JLabel( "this is first dialog box" );
JButton b = new JButton( "click me" );
b.addActionListener( this );
JPanel p = new JPanel();
p.add(b);
p.add(l);
d.add(p);
d.setSize( 200 , 200 );
d.setVisible( true );
}
else {
d1 = new JDialog(d, "dialog Box" );
JLabel l = new JLabel( "this is second dialog box" );
d1.add(l);
d1.setSize( 200 , 200 );
d1.setLocation( 200 , 200 );
d1.setVisible( true );
}
}
}
|
Output :

Note : The above programs might not run in an online compiler please use an offline IDE
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
16 Apr, 2021
Like Article
Save Article