Lets Start To Rock Your Swing
Postingan ini bercerita perihal extreme swing make over. Inti dari swing make over ini ialah perubahan tampilan se extreem mungkin. yang memang kalau seelumnya ada temen temen yang memakai bahasa pemograman lain menyerupai delphi atau VB, sulit untuk mengobrak abrik tampilan, sebab memang tidak sefleksible swing.
Ok kita mulai.
pada postingan ini aku akan menciptakan gradienPanel, itu lho panel yang warna warni (he kayak pelangi aja).
pertama siapkan editor temen-temen. (kalau aku pake netbeans semoga lebih asik soalnya lebih gampang dipakai nantinya).
Ok Copy pastekan aja Code ini:
__________________________________________________________________________
/*
* DILARANG MENGHAPUS ATAU MENGEDIT COPYRIGHT INI.
*
* Copyright 2009 Fiqri Tech
* All rights reserved.
*
* Semua isi dalam file ini ialah hak milik dari blackonta@gmail.com
* Anda tak diperkenankan untuk memakai file atau mengubah file ini
*
*/
package ovq.fiqri.lib.swing.plaf;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.LayoutManager;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
/**
*
* @author Opik
*/
public class QGradienPanel extends JPanel{
private static final long serialVersionUID = -1;
private BufferedImage gradientImage;
private Color warnaAtas = new Color(204, 249, 124);
private Color warnaBawah = new Color(174, 222, 94);
public QGradienPanel(){
super();
this.setBorder(javax.swing.BorderFactory.createEmptyBorder(3,3,3,3));
}
public QGradienPanel(LayoutManager layout) {
super(layout);
addComponentListener(new GradientCacheManager());
}
public Color getWarnaAtas() {
return warnaAtas;
}
public void setWarnaAtas(Color warnaAtas) {
this.warnaAtas = warnaAtas;
}
public Color getWarnaBawah() {
return warnaBawah;
}
public void setWarnaBawah(Color warnaBawah) {
this.warnaBawah = warnaBawah;
}
@Override
protected void paintComponent(Graphics g) {
createImageCache();
if (gradientImage != null) {
g.drawImage(gradientImage, 0, 0, getWidth(), getHeight(), null);
}
}
protected void createImageCache() {
int width = 2;
int height = getHeight();
if (width == 0 || height == 0) {
return;
}
if (gradientImage == null ||
width != gradientImage.getWidth() ||
height != gradientImage.getHeight()) {
gradientImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = gradientImage.createGraphics();
GradientPaint painter = new GradientPaint(0, 0, warnaBawah,
0, height / 2, warnaAtas);
g2.setPaint(painter);
Rectangle2D rect = new Rectangle2D.Double(0, 0, width, height / 2.0);
g2.fill(rect);
painter = new GradientPaint(0, height / 2, warnaAtas,
0, height, warnaBawah);
g2.setPaint(painter);
rect = new Rectangle2D.Double(0, (height / 2.0) - 1.0, width, height);
g2.fill(rect);
g2.dispose();
}
}
private void disposeImageCache() {
synchronized (gradientImage) {
gradientImage.flush();
gradientImage = null;
}
}
private class GradientCacheManager implements ComponentListener {
public void componentResized(ComponentEvent e) {
}
public void componentMoved(ComponentEvent e) {
}
public void componentShown(ComponentEvent e) {
}
public void componentHidden(ComponentEvent e) {
disposeImageCache();
}
}
}
__________________________________________________________________________
nah perhatikan isyarat pada method paintComponent() diatas, Abaikan saja isyarat ini
if (gradientImage != null) {
g.drawImage(gradientImage, 0, 0, getWidth(), getHeight(), null);
}
}
soalnya itu dibentuk kalau nantu temen temen ingin memakai gambar sebagai backgroundnya.
jadi backgroundnya akan dibentuk memakai warna gradien antara warnaatas, dan warnaBawah.
Kaprikornus ya kesudahannya kurang lebih menyerupai ini:
nah kalau temen-temen pake netbeans, untuk penggunaannya tinggal drag class diaas ke JPanel, Jframe atau ke JDialog.
nah perhatikan pada propertiesnya maka akan ditambahkan dua properties sebagai berikut.
jadinya menyerupai ini:
jadi tinggal dirubah saja warnanya sesuai dengan keinginan. ok moga bermanfaan n keep creative.
Silahkan Koment kalau dirasa ada yang kurang dimengerti
Belum ada Komentar untuk "Lets Start To Rock Your Swing"
Posting Komentar