membuat screen saver

membuat screen saver itu menggunakan bahasa JAVA. Walaupun sederhana yang penting kita bisa tahu bagaimana cara membuat membuat screen saver.
berikut adalah code programnya :


import javax.swing.JPanel;

import javax.swing.SwingUtilities;

import javax.swing.JWindow;

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import java.awt.image.*;

import java.awt.geom.*;


public class Bola extends JWindow{

private ArrayList balls = new ArrayList();

private Timer timer;

private TimerTask task;

private int counter;

private Robot robot;

private BufferedImage image;

private Dimension windowDimension;

public Bola(){

super();

windowDimension = Toolkit.getDefaultToolkit().getScreenSize();

try {

robot = new Robot();

}

catch (Exception e){

System.out.print(e.getMessage());

}

timer = new Timer();

task = new TimerTask(){

public void run(){

if (counter%100==0 && balls.size()<=20){

balls.add(new ball(windowDimension));

}

for (int i = 0;i < balls.size(); i++){

ball b = (ball)balls.get(i);

b.move();

}

counter++;

repaint();

}

};

timer.schedule(task,0,1);

setSize(windowDimension);

setAlwaysOnTop(true);

setVisible(true);

addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent m){

System.exit(1);

}

});

image = robot.createScreenCapture(new Rectangle(this.getLocationOnScreen(),windowDimension));

add(new JPanel(){

public void paintComponent(Graphics g){

Graphics2D g2 = (Graphics2D)g;

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

g2.drawImage(image,0,0,null);

for (int i = 0;i < balls.size(); i++){

ball b = (ball)balls.get(i);

b.draw(g2);

}

}

});

}

public static void main(String[] args){

SwingUtilities.invokeLater(new Runnable(){

public void run(){

new Bola();

}

});

}

}

class ball {

private int x,y,xC=2,yC=-2,ballSize = 100;

private Random rand;

private int width,height;

public ball(Dimension dimension){

rand = new Random();

width = (int)dimension.getWidth();

height = (int)dimension.getHeight();

x = 0;

y = rand.nextInt(height-ballSize);

}

public void draw(Graphics2D g2){

g2.drawOval(x,y,ballSize,ballSize);

}

public void move(){

x+=xC;

y+=yC;

if (x<=0){

x=0;xC=2;

}

if (x>=width-ballSize){

x=width-ballSize;xC=-2;

}

if (y<=0){

y=0;yC=2;

}

if (y>=height-ballSize){

y=height-ballSize;yC=-2;

}

}

}

Kenapa untuk frame saya memakai JWindow bukan JFrame???… Jawabannya, supaya program ini tidak muncul di taskbar. Program ini kan judulnya Screensaver, jadi kita buat seolah-olah tidak ada program yang jalan. Makanya jejak program di taskbar harus di lenyapkan. Kalau pakek JFrame, taskbarnya ga bs (atau ga tau :P ) diilangin.

Untuk ukuran frame, kita set ke ukuran maksimal monitor. Informasi ukuran layar di peroleh dengan bantuan class java.awt.Toolkit. Terus set AlwaysOnTop ke true supaya tidak ada window lain yang mengganggu keindahan program ini.

0 Response to "membuat screen saver"