package com.floreantpos.swing; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Cursor; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JLabel; import javax.swing.JPanel; public class GlassPane extends JPanel implements MouseListener, MouseMotionListener { private float opacity = 0.2f; private JLabel label; public GlassPane(){ setOpaque(false); setVisible(false); setLayout(new GridLayout()); label = new JLabel("LOADING"); label.setHorizontalAlignment(JLabel.CENTER); label.setVerticalAlignment(JLabel.CENTER); label.setFont(getFont().deriveFont(Font.BOLD, 48)); label.setForeground(Color.RED); add(label); addMouseListener(this); addMouseMotionListener(this); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opacity); g2.setComposite(ac); g.fillRect(0, 0, getWidth(), getHeight()); } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { } public float getOpacity() { return opacity; } public void setOpacity(float opacity) { this.opacity = opacity; } public void setMessage(String message) { label.setText(message); } }