Per – Pixel Translucency allows the programmer to control the translucency of a specific pixel over others. we will use this property to create a shaped window.
In this article we will try to implement shaped window in java by creating a transparent window and then painting the panel and then adding the Panel to the window.
- setBackground(Color c)method is used to set the background color to color c.
- color class is used to create a color of required transparency.
Methods :
- setBackground(Color c) : method to set the background color to color c
- color(int r, int g, int b, int alpha) : creates a new color with specified red, green, blue and alpha value. where alpha is the value of translucency where 255 is opaque and 0 is transparent .
- getRGB(int x, int y) : returns the RGB value of the Coordinate x, y
- setColor(Color c) : set the color of graphics to c.
Examples:
- Example 1
Input :

Output:

- Example 2
Input :

Output:
- Example 3 :
Input :

Output 3 :
Explanation : Here, in the input we can see that the background is made transparent whereas the
symbol of GeeksforGeeks remains as it was. Through the transparent background we can see the window below. We have separated the logo from its background and painted it on a transparent window .
The program below will illustrate how to create a shaped window using per – pixel translucency.
Java
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
class solve extends JFrame {
public static void main(String[] args)
{
try {
JWindow w = new JWindow();
w.setBackground( new Color( 0 , 0 , 0 , 0 ));
BufferedImage i = ImageIO.read( new File( "f:/gfg.png" ));
JPanel p = new JPanel() {
public void paintComponent(Graphics g)
{
for ( int ii = 1 ; ii < i.getHeight(); ii++)
for ( int j = 1 ; j < i.getWidth(); j++) {
Color ty = new Color(i.getRGB(j, ii));
if (ty.getRed() > 200 && ty.getGreen() > 200 && ty.getBlue() > 200 )
g.setColor( new Color( 0 , 0 , 0 , 0 ));
else
g.setColor( new Color(i.getRGB(j, ii)));
g.drawLine(j, ii, j, ii);
}
}
};
w.add(p);
w.setLocation( 350 , 300 );
w.setSize( 900 , 900 );
w.setVisible( true );
}
catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
|
Input 1 :
Output 1 :
Input 2 :
Output 2 :
Input 3 :

Output 3 :
Note:
I have chosen the color white as the background so I have separated it from the image and made it transparent. Its upon the discretion of the programmer to choose the background of the image .
Note : The above programs might not run in an online compiler please use an offline IDE.
It is recommended to use latest version of java to run the above programs, user might face problems if older versions of java are used.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
01 Sep, 2021
Like Article
Save Article