а ве имам въпросче към GradientPaint ако някой е използвал 
въпроса ми е когато го сложа за backGround всичко е окей той има 6 аргументен конструктор
GradientPaint background = new GradientPaint(
            0f, 0f, Color.GRAY.darker(),
            0f, 140, Color.BLACK.brighter());
аз го разбирам като от какъв цвят и къде да почне градиент-а.
в случая това изглежда така : 

което е СУПЕР
обаче проблема идва когато искам да имам текст + картинка който да градиентвам по някакъв начин самите тях по скоро искам да създам нещо като (mask) в контекст на photoshop в/у тях и нямам идея как да стане...
идеята е да получа нещо такова : 

(Създадено с Tool ( Photoshop like ) 
ако забелязвате долния Reflection text + картинката са с градиент в/у тях
е как да стане тази мизерия 
пробвах така : 
import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
import javax.swing.JFrame;
import org.freehep.swing.graphics.PanelArtistUtilities;
public class Canvascho extends JComponent
{
	
	
	private BufferedImage image;
	public Canvascho()
	{
		
		try
		{
			image=ImageIO.read(new File("D:\\My Documents\\JLOGO.png"));
		}
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	@Override
	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		Graphics2D g2d = (Graphics2D)g;
		AffineTransform defaultTransform=g2d.getTransform();
		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
        RenderingHints.VALUE_RENDER_QUALITY);
		// Paint a gradient for the sky
		GradientPaint background = new GradientPaint(
				0f, 0f, Color.GRAY.darker(),
				0f, 140, Color.BLACK.brighter());
		g2d.setPaint(background);
		g2d.fillRect(0, 0, getWidth(), getHeight());
		g2d.setFont(new Font("Arial",Font.PLAIN,48));
		g2d.setColor(Color.white);
		String theString="JOKe";
//		g2d.drawString(theString, 100, 100);
//		AffineTransform rotate=AffineTransform.getScaleInstance(-0.3, 1);
//		g2d.transform(rotate);
		g2d.drawString(theString, 100, 100);
		g2d.drawImage(image,  220, 36,null);
		g2d.transform(PanelArtistUtilities.getYFlipTransform(203));
		g2d.drawRect(20,40,310,250);
		GradientPaint fill = new GradientPaint(
				0f, 0f, Color.WHITE.darker(),
				0f, 48, Color.GRAY.brighter());
		g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f));
		g2d.setPaint(fill);
		g2d.drawString(theString, 100, 100);
		g2d.drawImage(image,  220, 36,null);
	}
	public static void main(String[] args)
	{
		JFrame frame=new JFrame();
		frame.setLayout(new BorderLayout());
		frame.add(new Canvascho(),BorderLayout.CENTER);
		frame.setSize(500,500);
		frame.setVisible(true);
	}
}
Резултата е : 

както се вижда доло има alpha fade от AlphaComposite-a ама няма Gradient ..
Явно тънкия момент е в : 
      GradientPaint fill = new GradientPaint(
            0f, 0f, Color.WHITE.darker(),
            0f, 
48, Color.GRAY.brighter());
но незнам спрямо какво да го смятам тъй като съм FLIPнал всичко.
( ако някой ще компилира за глупавия Filp му трябва 
http://java.freehep.org/maven2/org/freehep/freehep-swing/2.0.3/freehep-swing-2.0.3.jar ) 
Може и без него ама математиката ми куца и не ми се мислише 
 та я обяаснете този параметър на градиеннт-а за какво е ? това спрямо Clip-a на самия компонент ли е или е за самия него смисъл ако имам нещо намиращо се на 100,100 ширина 100 и височина 100 и напиша че градиента почва от 120 120 ще почне от 20 в него или от 120 в него т.е. някъде отдоло и няма да се види.