I would like to display a message onto the screen upon the button press. The message should not have any window and should be displayed at the center of the screen over any
I can think of at least three ways to do this in Swing...
If you simply want to show content over the current frame, then you can use the current frames glass pane...

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class OverlayTest {
public static void main(String[] args) {
new OverlayTest();
}
public OverlayTest() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
final OverlayPane overlay = new OverlayPane();
JButton show = new JButton("Show");
show.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
overlay.setVisible(true);
}
});
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setGlassPane(overlay);
frame.setLayout(new GridBagLayout());
frame.add(show);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class OverlayPane extends JPanel {
private JLabel label;
public OverlayPane() {
setLayout(new GridBagLayout());
label = new JLabel("1");
label.setFont(label.getFont().deriveFont(Font.BOLD, 96f));
add(label);
setOpaque(false);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
}
}
See how to use How to Use Root Panes
If you want to display the content over a particular component within the current frame, then you could take advantage of the JLayeredPane, which acts a lot like a glass pane for components...
See How to Decorate Components with the JLayer Class for more details

import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class OverlayTest2 {
public static void main(String[] args) {
new OverlayTest2();
}
public OverlayTest2() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
final JFrame masterFrame = new JFrame("Testing");
final OverlayPane overlay = new OverlayPane();
JButton show = new JButton("Show");
show.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setBackground(new Color(0, 0, 0, 0));
frame.add(new OverlayPane());
frame.pack();
frame.setLocationRelativeTo(masterFrame);
frame.setVisible(true);
}
});
masterFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
masterFrame.setGlassPane(overlay);
masterFrame.setLayout(new GridBagLayout());
masterFrame.add(show);
masterFrame.pack();
masterFrame.setLocationRelativeTo(null);
masterFrame.setVisible(true);
}
});
}
public class OverlayPane extends JPanel {
private JLabel label;
public OverlayPane() {
setLayout(new GridBagLayout());
label = new JLabel("1");
label.setFont(label.getFont().deriveFont(Font.BOLD, 96f));
add(label);
setOpaque(false);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
}
}
See How to Create Translucent and Shaped Windows
Now, if you want the window be filled, then remove the line frame.setBackground(new Color(0, 0, 0, 0));, this is what makes the frame transparent.