All pastes #84442 Raw Edit

joel

public text v1 · immutable
·published 2006-07-10 22:44 UTC
rendered paste body
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.awt.*;

public class FlyingWindow extends JFrame implements ActionListener {
    JLabel information;
    JPanel container;
    Timer move;
    Timer wait;
    Timer goAway;
    int width = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth() - 105;
    int height = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight() - 140;
    int verticalLocation = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();

    public FlyingWindow(String notify) {
    	
    	System.out.println(Toolkit.getDefaultToolkit().getScreenSize().getHeight());
    	
        container = new JPanel();
        container.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
        information = new JLabel(notify, JLabel.CENTER);
        container.add(information);
        
        setUndecorated(true);
        setSize(100, 100);
        //setLocation((int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(), (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight());
        setLocation(width, verticalLocation);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setContentPane(container);
        show();
        move = new Timer(30, this);
        wait = new Timer(5000, this);
        wait.setRepeats(false);
        goAway = new Timer(30, this);
        move.start();
    }
    
    public void actionPerformed (ActionEvent e) {
        if (move.isRunning()) {
            if (verticalLocation > height) {
                verticalLocation -= 5;
                this.setLocation(width, verticalLocation);
            }
            
            else {
                move.stop();
                wait.start();
            }
        }
        
        else if ((! move.isRunning()) && (! goAway.isRunning())) {
            wait.stop();
            goAway.start();
        }
        
        else if (goAway.isRunning()) {
            if (verticalLocation < 1024) {
                verticalLocation += 5;
                this.setLocation(width, verticalLocation);
            }
            
            else {
                goAway.stop();
            }
        }
    }
    
    public static void main(String[] args) {
        new FlyingWindow("Inbox!");
    }
}