¿Qué son los mensajes de brindis? ¿Y cómo crearlos usando Java Swing?
Los Toast Messages son una forma rápida de informar al usuario mediante breves mensajes emergentes que duran un breve período de tiempo y luego desaparecen.
Java Swing no tiene una clase incorporada para el mensaje de brindis, pero el mensaje de brindis es una forma popular y efectiva de mostrar un mensaje de caducidad automática que se muestra solo por un corto período de tiempo. Entonces, para implementar un mensaje de brindis, debemos crear manualmente una clase que sea capaz de crear un mensaje de brindis.
En este artículo, discutiremos cómo crear manualmente un mensaje de brindis en Java, utilizando Java Swing Components. Los siguientes programas crearán un mensaje de texto de brindis que durará un corto período de tiempo y luego desaparecerán.
Consulte el siguiente artículo para obtener más detalles sobre ventanas y marcos translúcidos. Esto le dará una idea de cómo implementar ventanas translúcidas y con forma.
Oscilación de Java | Ventana translúcida y con forma en Java
JSwing | Ventana translúcida y con forma.
El siguiente programa crea el mensaje de brindis (que es una JWindow selectivamente translúcida)
// 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()); } } }
Programa controlador que ejecuta el programa anterior.
// Java Program to create a driver class to run // the toast class import 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(); } }
Producción :
Nota: este programa no se ejecutará en un IDE en línea; utilice un IDE sin conexión con la última versión de Java.
Publicación traducida automáticamente
Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA