Here i have given the JAVA code to make a popup that happens exactly like the gmail desktop application does.It uses a JFrame to make the window.
Code:
Code:
package com.oksbwn.popUp; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.oksbwn.ErrorHandling.handleExceptions; import resources.RscLoader; public class popMe extends JFrame { private static final long serialVersionUID = 1L; public static void main(String[] args) throws Exception{ new popMe("hi", "from Bikash", "ok",15, 125); } public popMe(String message,String header,String image, final int time,int height) { Runnable r = new newThreadPop(message,header,image,time,height); new Thread(r).start(); } } class newThreadPop implements Runnable { private String message; private String header; private String image; private int time; private int height; public newThreadPop(String message1,String header1,String image1, final int time1,int height1) { // store parameter for later user this.message=message1; this.header=header1; this.image=image1; this.time=time1; this.height=height1; } public void run() { final Runnable runnable = (Runnable) Toolkit.getDefaultToolkit().getDesktopProperty("win.sound.exclamation"); //default if (runnable != null) runnable.run(); final JFrame frame = new JFrame(); frame.setUndecorated(true); frame.setType(javax.swing.JFrame.Type.UTILITY);frame.setUndecorated(true); frame. setBackground(new Color(Color.black.getRed(), Color.black.getGreen(),Color.black.getBlue(),0)); ((JComponent)frame.getContentPane()).setBorder( BorderFactory.createMatteBorder( 2, 2, 2, 2, Color.black ) ); frame.setSize(300,height); frame.setLayout(new GridBagLayout()); GridBagConstraints constraints = new GridBagConstraints(); constraints.gridx = 0; constraints.gridy = 0; constraints.weightx = 1.0f; constraints.weighty = 1.0f; constraints.insets = new Insets(5, 5, 5, 5); constraints.fill = GridBagConstraints.BOTH; JLabel headingLabel = new JLabel(header); headingLabel.setForeground(Color.red); ImageIcon headingIcon = new ImageIcon(RscLoader.getImage(image)); headingLabel .setIcon(headingIcon); // --- use image icon you want to be as heading image. headingLabel.setOpaque(false); frame.add(headingLabel, constraints); constraints.gridx++; constraints.weightx = 0f; constraints.weighty = 0f; constraints.fill = GridBagConstraints.NONE; constraints.anchor = GridBagConstraints.NORTH; final JLabel lblX = new JLabel("X"); lblX.setToolTipText("Close\r\n"); lblX.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { frame.dispose(); } @Override public void mouseEntered(MouseEvent e) { lblX.setForeground(new Color(255, 0, 0)); } public void mouseExited(MouseEvent e) { lblX.setForeground(new Color(0, 0, 0)); } }); lblX.setSize(10,10); lblX.setFocusable(false); frame.add(lblX,constraints); constraints.gridx = 0; constraints.gridy++; constraints.weightx = 1.0f; constraints.weighty = 1.0f; constraints.insets = new Insets(5, 5, 5, 5); constraints.fill = GridBagConstraints.BOTH; JLabel messageLabel = new JLabel(""+message); messageLabel.setForeground(Color.blue); frame.add(messageLabel, constraints); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setVisible(true); frame.setAlwaysOnTop(true); Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();// size of the screen Insets toolHeight = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration());// height of the task bar frame.setLocation(scrSize.width - frame.getWidth(), scrSize.height - toolHeight.bottom - frame.getHeight()); new Thread(){ @Override public void run() { try { Thread.sleep(time*1000); // time after which pop up will be disappeared. frame.dispose(); } catch (Exception e) {new handleExceptions(e);} };}.start(); } }
No comments:
Post a Comment