Cara Membuat PaintComponent Form Berwarna Gradient di Java

 

PaintComponent Membuat Form Berwarna Gradient

Awal belajar Java di Netbeans hal pertama yang saya tanyakan adalah gimana caranya supaya membuat Panel yang standar NetBeans cuman bisanya satu warna doang menjadi lebih berwarna (yaaa.... seperti ada efek gradasi warna dari 2 warna yag berbeda).
Pengen tau, cari tau, sudah tau, akhirnya berbagi tau.... hehe
Kira-kira seperti ini...
>> Kodingannya kira-kira seperti ini... (Saya buat dalam Package "komponen")
// Panel.java

package komponen;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.GeneralPath;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;

public class Panel extends JPanel {

    private static final long serialVersionUID = -1;
    private BufferedImage gradientImage;
    private Color white = Color.WHITE;
    private Color cyan = Color.CYAN;

// membuat panel white cyan ( tanda /* dan */ ini adalah biar tidak kebaca atau mengunci kata tersebut pada program Java).
    public Panel() {
        super();
    }
    @Override
    protected void paintComponent(Graphics g) {
    super.paintComponent(g);
     if (isOpaque()) {
       Graphics2D g2 = (Graphics2D) g.create();
       g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
setUpGradient();
g2.drawImage(gradientImage, 0, 0, getWidth(), getHeight(), null);

int width = getWidth();
int height = getHeight() * 5 / 100;
Color light = new Color(1F, 1F, 1F, 0.5F);
Color dark = new Color(1F, 1F, 1F, 0.0F);

    GradientPaint paint = new GradientPaint(0, 0, light, 0, height, dark);
    GeneralPath path = new GeneralPath();
    path.moveTo(0, 0);
    path.lineTo(0, height);
    path.curveTo(0, height, width / 2, height / 2, width, height);
    path.lineTo(width, 0);
    path.closePath();

    g2.setPaint(paint);
    g2.fill(path);

    paint = new GradientPaint(0, getHeight(), light, 0, getHeight() - height, dark);
    path = new GeneralPath();
    path.moveTo(0, getHeight());
    path.lineTo(0, getHeight() - height);
path.curveTo(0, getHeight() - height, width / 2, getHeight() - height / 2, width, getHeight() - height);
 path.lineTo(width, getHeight());
 path.closePath();

 g2.setPaint(paint);
 g2.fill(path);
 g2.dispose();
}
}
/* membuat gambar background gradient */
    private void setUpGradient() {
gradientImage = new BufferedImage(1, getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = (Graphics2D) gradientImage.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

GradientPaint paint = new GradientPaint(0, 0, white, 0, getHeight(), cyan);

g2.setPaint(paint);
g2.fillRect(0, 0, 1, getHeight());
g2.dispose();
}
}
// PanelDao.java
package komponen;
public interface PanelDao {
public static final int BACKGROUND_IMAGE_CENTER_BOTTOM = 0;
public static final int BACKGROUND_IMAGE_CENTER_MIDDLE = 1;
public static final int BACKGROUND_IMAGE_CENTER_TOP = 2;
public static final int BACKGROUND_IMAGE_LEFT_BOTTOM = 3;
public static final int BACKGROUND_IMAGE_LEFT_MIDDLE = 4;
public static final int BACKGROUND_IMAGE_LEFT_TOP = 5;
public static final int BACKGROUND_IMAGE_RIGHT_BOTTOM = 6;
public static final int BACKGROUND_IMAGE_RIGHT_MIDDLE = 7;
public static final int BACKGROUND_IMAGE_RIGHT_TOP = 8;
public static final int BACKGROUND_IMAGE_STRECT = 9;
public static final int BACKGROUND_IMAGE_TILED = 10;
}
// PanelImpl.java
package komponen;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Paint;
import javax.swing.Icon;
import javax.swing.JPanel;
public class PanelImpl extends JPanel implements PanelDao{

    private static final long serialVersionUID = 1L;
    private Icon backgroundImage;
    private int backgroundImageType;
    private Paint backgroundPaint;
    private boolean opaqueGradient;
    private boolean opaqueImage;
    private Image gambar;

    public PanelImpl() {
     //compiled code
    throw new RuntimeException("Compiled Code");
    }
    public Icon getBackgroundImage() {
    //compiled code
    throw new RuntimeException("Compiled Code");
    }
    public int getBackgroundImageType() {
     //compiled code
     throw new RuntimeException("Compiled Code");
    }
    public Paint getBackgroundPaint() {
    //compiled code
    throw new RuntimeException("Compiled Code");
    }
    public boolean isOpaqueGradient() {
    //compiled code
    throw new RuntimeException("Compiled Code");
    }
    public boolean isOpaqueImage() {
    //compiled code
   throw new RuntimeException("Compiled Code");
    }
    protected void paintComponent(Graphics g) {
    //compiled code
     throw new RuntimeException("Compiled Code");
    }
    public void setBackgroundImage(Icon backgroundImage) throws IllegalArgumentException {
     //compiled code
     throw new RuntimeException("Compiled Code");
 }
Public void setBackgroundImageType(int backgroundImageType) throws llegalArgumentException
{
//compiled code
throw new RuntimeException("Compiled Code");
}

    public void setBackgroundPaint(Paint backgroundPaint) {
  //compiled code
   throw new RuntimeException("Compiled Code");
    }
    public void setOpaqueGradient(boolean opaqueGradient) {
     //compiled code
     throw new RuntimeException("Compiled Code");
    }
    public void setOpaqueImage(boolean opaqueImage) {
     //compiled code
     throw new RuntimeException("Compiled Code");
    }

}


No comments:
Write comments
  • Samsung Printer SL-M2825 Driver Downloads
  • Samsung Xpress SL-M2825 Laser PrintersFast print speeds, a 12,000-page duty ... read more
  • Samsung MultiXpress CLX-9251 Driver Downloads
  • Samsung MultiXpress CLX-9251 Laser Multifunction PrinterPaper supply starts ... read more
  • Samsung ProXpress SL-M4560 Driver Downloads
  • Samsung ProXpress SL-M4560 Laser Multifunction Printer Samsung ProXpress ... read more
  • Samsung MultiXpress CLX-9256 Driver Downloads
  • Samsung MultiXpress CLX-9256 Laser Multifunction Printer CLX-9256 scans of ... read more
  • Dell C2665dnf Driver Downloads
  • Dell C2665dnf  Color Multifunction PrinterPrinter Category: LaserType: ... read more
    Recent Posts Widget