Java Swing | Creating a Toast Message - GeeksforGeeks

05 Jun, 2018
What are toast messages? And how to create them by using Java Swing?Toast Messages are a quick way of informing the user by short Pop-up messages that last for a short period of time and then disappear.
Java Swing does not have an inbuilt class for toast message but toast message is a popular and an effective way to display auto-expiring message that is displayed only for a short length of time. So in order to implement a toast message we have to manually build a class that is capable of creating a toast message.
In this article we will discuss how to manually create a toast message in Java, using Java Swing Components. The Following programs will create a text toast message that lasts for a short length of time and then they will disappear.
Please go through the following article for more details on translucent Window and Frames, This will give you the idea how to implement translucent and shaped window.Java Swing | Translucent and Shaped Window in JavaJSwing | Translucent and Shaped window
The following program creates the toast message (which is a selectively translucent JWindow)
// Java program that creates the toast message//(which is a selectively translucent JWindow)import java.awt.*;import javax.swing.*;import java.awt.event.*;class toast extends JFrame {      //String of toast    String s;      // JWindow    JWindow w;      toast(String s, int x, int y)    {        w = new JWindow();          // make the background transparent        w.setBackground(new Color(0, 0, 0, 0));          // create a panel        JPanel p = new JPanel() {            public void paintComponent(Graphics g)            {                int wid = g.getFontMetrics().stringWidth(s);                int hei = g.getFontMetrics().getHeight();                  // draw the boundary of the toast and fill it                g.setColor(Color.black);                g.fillRect(10, 10, wid + 30, hei + 10);                g.setColor(Color.black);                g.drawRect(10, 10, wid + 30, hei + 10);                  // set the color of text                g.setColor(new Color(255, 255, 255, 240));                g.drawString(s, 25, 27);                int t = 250;                  // draw the shadow of the toast                for (int i = 0; i < 4; i++) {                    t -= 60;                    g.setColor(new Color(0, 0, 0, t));                    g.drawRect(10 - i, 10 - i, wid + 30 + i * 2,                               hei + 10 + i * 2);                }            }        };          w.add(p);        w.setLocation(x, y);        w.setSize(300, 100);    }      // function to pop up the toast    void showtoast()    {        try {            w.setOpacity(1);            w.setVisible(true);              // wait for some time            Thread.sleep(2000);              // make the message disappear  slowly            for (double d = 1.0; d > 0.2; d -= 0.1) {                Thread.sleep(100);                w.setOpacity((float)d);            }              // set the visibility to false            w.setVisible(false);        }        catch (Exception e) {            System.out.println(e.getMessage());        }    }}
Driver program that runs the above program .
// Java Program to create a driver class to run // the toast classimport javax.swing.*;import java.awt.*;import java.awt.event.*;class driver extends JFrame implements ActionListener {      // create a frame    static JFrame f;      // textfield    static JTextField tf;      public static void main(String args[])    {        // create the frame        f = new JFrame("toast");          driver d = new driver();          // textfield        tf = new JTextField(16);          // button        Button b = new Button("create");          // add action listener        b.addActionListener(d);          // create a panel        JPanel p = new JPanel();          p.add(tf);        p.add(b);          // add panel        f.add(p);          // setSize        f.setSize(500, 500);          f.show();    }      // if button is pressed    public void actionPerformed(ActionEvent e)    {          // create a toast message        toast t = new toast(tf.getText(), 150, 400);          // call the method        t.showtoast();    }}
Output :
Note: This Program will not run in an online IDE please use an offline IDE with latest version of java.
java-swing
Java
Programming Language
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Functional Interfaces in Java
Stream In Java
Constructors in Java
Different ways of Reading a text file in Java
Exceptions in Java
Arrow operator -> in C/C++ with Examples
Modulo Operator (%) in C/C++ with Examples
Structures in C++
Differences between Procedural and Object Oriented Programming
Top 10 Programming Languages to Learn in 2022