📜  Java摇摆 |创建自定义消息对话框

📅  最后修改于: 2022-05-13 01:54:36.929000             🧑  作者: Mango

Java摇摆 |创建自定义消息对话框

尽管Java Swing 提供了内置的消息对话框来显示消息,但我们可以使用 JWindow 和其他Java Swing 元素创建自定义消息对话框。创建它们的优点是它们是高度可定制的,我们可以为它们添加所需的外观和功能。
在本文中,我们将了解如何在Java Swing 中创建自定义消息。
例子:

First we create a simple JWindow and add label and button to it.
Output:

Then we will shape the window and background color to it.
Output:

Then will set the look and feel of the label and
button to System look and feel and then add glossy 
appearance to the window by applying per pixel
translucency.
Output:

在以下程序中,我们将看到如何创建消息对话框。
1.程序创建一个简单的JWindow并为其添加标签和按钮。

Java
// Java Program to create a simple JWindow
// and add label and button to it.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class message implements ActionListener {
 
    // window
    JWindow w;
 
    // constructor
    message()
    {
        // create a window
        w = new JWindow();
 
        // create a label
        JLabel l = new JLabel("This  is a message dialog");
 
        // create a new button
        JButton b = new JButton("OK");
 
        // add action listener
        b.addActionListener(this);
 
        // create a panel
        JPanel p = new JPanel();
 
        // add contents to panel
        p.add(l);
        p.add(b);
 
        w.add(p);
 
        w.setSize(200, 100);
        w.setLocation(300, 300);
 
        w.show();
    }
 
    // if button is pressed
    public void actionPerformed(ActionEvent evt)
    {
        w.setVisible(false);
    }
 
    // main class
    public static void main(String args[])
    {
        // create aobject
        message m = new message();
    }
}


Java
// Java Program to create a message window,
// and shape the window and add background color to it
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class message1 implements ActionListener {
    // window
    JWindow w;
 
    // constructor
    message1()
    {
        // create a window
        w = new JWindow();
 
        // set background of window transparent
        w.setBackground(new Color(0, 0, 0, 0));
 
        // create a label
        JLabel l = new JLabel("This  is a message dialog");
 
        // create a new button
        JButton b = new JButton("OK");
 
        // add action listener
        b.addActionListener(this);
 
        try {
            // set windows look and feel
            UIManager.setLookAndFeel(UIManager.
                             getSystemLookAndFeelClassName());
        }
        catch (Exception e) {
        }
 
        // create a panel
        JPanel p = new JPanel() {
            public void paintComponent(Graphics g)
            {
 
                g.setColor(new Color(100, 100, 240));
                g.fillRoundRect(0, 0, 200, 100, 20, 20);
 
                g.setColor(new Color(10, 10, 255));
                g.drawRoundRect(0, 0, 200, 100, 20, 20);
            }
        };
 
        // create a font
        Font f = new Font("BOLD", 1, 14);
 
        l.setFont(f);
 
        // add contents to panel
        p.add(l);
        p.add(b);
 
        w.add(p);
 
        w.setSize(200, 100);
        w.setLocation(300, 300);
 
        w.show();
    }
 
    // if button is pressed
    public void actionPerformed(ActionEvent evt)
    {
        w.setVisible(false);
    }
 
    // main class
    public static void main(String args[])
    {
        // create aobject
        message1 m = new message1();
    }
}


Java
// Java Program to create a message window, shape the window
// add background color to it and also add
// glossy appearance to the window by applying per pixel translucency
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class message2 implements ActionListener {
    // window
    JWindow w;
 
    // constructor
    message2()
    {
        // create a window
        w = new JWindow();
 
        // set background of window transparent
        w.setBackground(new Color(0, 0, 0, 0));
 
        // create a label
        JLabel l = new JLabel("This  is a message dialog");
 
        // create a new button
        JButton b = new JButton("OK");
 
        // add action listener
        b.addActionListener(this);
 
        try {
            // set windows look and feel
            UIManager.setLookAndFeel(UIManager
                         .getSystemLookAndFeelClassName());
        }
        catch (Exception e) {
        }
 
        // create a panel
        JPanel p = new JPanel() {
            public void paintComponent(Graphics g)
            {
 
                g.setColor(new Color(100, 100, 240));
                g.fillRoundRect(0, 0, 200, 100, 20, 20);
 
                g.setColor(new Color(10, 10, 255));
                g.drawRoundRect(0, 0, 200, 100, 20, 20);
 
                // create a glossy appearance
                for (int i = 0; i < 100; i++) {
                    g.setColor(new Color(255, 255, 255, i));
                    g.drawLine(0, i, 200, i);
                }
            }
        };
 
        // create a font
        Font f = new Font("BOLD", 1, 14);
 
        l.setFont(f);
 
        // add contents to panel
        p.add(l);
        p.add(b);
 
        w.add(p);
 
        w.setSize(200, 100);
        w.setLocation(300, 300);
 
        w.show();
    }
 
    // if button is pressed
    public void actionPerformed(ActionEvent evt)
    {
        w.setVisible(false);
    }
 
    // main class
    public static void main(String args[])
    {
        // create aobject
        message2 m = new message2();
    }
}


输出:

2.程序创建一个消息窗口,为它塑造窗口和背景颜色。

Java

// Java Program to create a message window,
// and shape the window and add background color to it
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class message1 implements ActionListener {
    // window
    JWindow w;
 
    // constructor
    message1()
    {
        // create a window
        w = new JWindow();
 
        // set background of window transparent
        w.setBackground(new Color(0, 0, 0, 0));
 
        // create a label
        JLabel l = new JLabel("This  is a message dialog");
 
        // create a new button
        JButton b = new JButton("OK");
 
        // add action listener
        b.addActionListener(this);
 
        try {
            // set windows look and feel
            UIManager.setLookAndFeel(UIManager.
                             getSystemLookAndFeelClassName());
        }
        catch (Exception e) {
        }
 
        // create a panel
        JPanel p = new JPanel() {
            public void paintComponent(Graphics g)
            {
 
                g.setColor(new Color(100, 100, 240));
                g.fillRoundRect(0, 0, 200, 100, 20, 20);
 
                g.setColor(new Color(10, 10, 255));
                g.drawRoundRect(0, 0, 200, 100, 20, 20);
            }
        };
 
        // create a font
        Font f = new Font("BOLD", 1, 14);
 
        l.setFont(f);
 
        // add contents to panel
        p.add(l);
        p.add(b);
 
        w.add(p);
 
        w.setSize(200, 100);
        w.setLocation(300, 300);
 
        w.show();
    }
 
    // if button is pressed
    public void actionPerformed(ActionEvent evt)
    {
        w.setVisible(false);
    }
 
    // main class
    public static void main(String args[])
    {
        // create aobject
        message1 m = new message1();
    }
}

输出:

3.程序创建一个消息窗口,对窗口进行整形,为其添加背景颜色,并通过应用每像素半透明度为窗口添加光泽外观

Java

// Java Program to create a message window, shape the window
// add background color to it and also add
// glossy appearance to the window by applying per pixel translucency
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class message2 implements ActionListener {
    // window
    JWindow w;
 
    // constructor
    message2()
    {
        // create a window
        w = new JWindow();
 
        // set background of window transparent
        w.setBackground(new Color(0, 0, 0, 0));
 
        // create a label
        JLabel l = new JLabel("This  is a message dialog");
 
        // create a new button
        JButton b = new JButton("OK");
 
        // add action listener
        b.addActionListener(this);
 
        try {
            // set windows look and feel
            UIManager.setLookAndFeel(UIManager
                         .getSystemLookAndFeelClassName());
        }
        catch (Exception e) {
        }
 
        // create a panel
        JPanel p = new JPanel() {
            public void paintComponent(Graphics g)
            {
 
                g.setColor(new Color(100, 100, 240));
                g.fillRoundRect(0, 0, 200, 100, 20, 20);
 
                g.setColor(new Color(10, 10, 255));
                g.drawRoundRect(0, 0, 200, 100, 20, 20);
 
                // create a glossy appearance
                for (int i = 0; i < 100; i++) {
                    g.setColor(new Color(255, 255, 255, i));
                    g.drawLine(0, i, 200, i);
                }
            }
        };
 
        // create a font
        Font f = new Font("BOLD", 1, 14);
 
        l.setFont(f);
 
        // add contents to panel
        p.add(l);
        p.add(b);
 
        w.add(p);
 
        w.setSize(200, 100);
        w.setLocation(300, 300);
 
        w.show();
    }
 
    // if button is pressed
    public void actionPerformed(ActionEvent evt)
    {
        w.setVisible(false);
    }
 
    // main class
    public static void main(String args[])
    {
        // create aobject
        message2 m = new message2();
    }
}

输出 :

注意:以下程序可能无法在在线编译器中运行,请使用离线 IDE。