Kamis, 19 April 2012

Swing Make Over / Swing X

SwingMakeOver merupakan teknik memanipulasi tampilan User Interfaces (Java Swing). Teknik ini dilakukan dengan menggunakan penggambaran agar tampilan komponen-komponen Java Swing seperti TextField, Button dan lain-lain menjadi lebih cantik kelihatannya.

Apa kelebihan SwingX?  SwingX menawarkan fitur-fitur ekstra yang tidak ditemui di Swing secara siap jadi. Sebagai contoh, ada yang disebut sebagai Highlighter, untuk memberi highlight (bisa berupa warna background berbeda dan sebagainya) pada sel tertentu di JXTable, JXList, JXTree, dan sebagainya.  Komponen yang diawali JX kebanyakan adalah turunan dari komponen Swing standar, misalnya JXTable adalah turunan dari JTable.  Demikian juga, JXComboBox adalah turunan dari JComboBoxJXComboBox sudah mendukung fitur highlight dengan adanya fungsi addHighlighter().  Jika kita ingin menampilkan nilai dibawah 50 dengan background merah di JXComboBox, kita dapat menggunakan ColorHighlighter.


Swing MakeOver Part 4, Cool TextField

Ok, sebelumnya coba perhatikan textBox pencarian pada beberapa IE, or Firefox:
IE
Kalo kita perhatikan, ada sesuatu yang menarik pada textbox pencarian diatas, yup benar tektboxnya punya Background, dan Backroundnya akan ilang kalo fokuskan cursot ato kita ketikan sesuatu.

Ya udah kita buat aja, gampang koq
Siapkan sebuah gambar (buat kita jadiin background). Klo saya pake gambar ini:

 

Sesuaikan ukurannya. (biasanya ukuran standard TextField memunyai tinggi kira-kira 20px) jadi gambarnya kita berikn tinggi kurang lebih 16 px. (Atau sesuaikan saja sesuai keinginan)
Trus, Buat sebuah project baru (Saya pake netbeans). Trus buat class baru. (Saya kasih nama QCoolTextField aja ya).

Kemudian ketikan kode berikut:

package ovq.cooltextfield;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JTextField;

public class QCoolTextField extends JTextField{
private BufferedImage bg;
private boolean fokus = false;

public QCoolTextField() {
bg = QBufferedImage.loadCompatibleImage(new ImageIcon(getClass().getResource("/ovq/cooltextfield/resource/BlackOnta.png")).getImage());

addFocusListener(new FocusAdapter() {

@Override
public void focusGained(FocusEvent e) {
fokus = true;
repaint();
}

@Override
public void focusLost(FocusEvent e) {
fokus = false;
repaint();
}
});
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2=(Graphics2D)g.create();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
super.paintComponent(g);
if ( !fokus && getText().trim().equals("")){
g2.drawImage(bg, 3, 3, null);
}

g2.dispose();
}

}

Perhatikan kode yang di garis bawahi, sesuaikan dengan classpath project dimana gambar disimpan.
Trus compile, klo gak ada error berarti suksess.
Dah gitu buat sebuah JFrame. Drag class QCoolTextField yang baru kita compile. Atur atur posisi sesuai dengan keinginan.
Kurang lebih kayak ginilah:


Trus Compaild n cobain deh.
Hasilnya kira kira kayak gini:

Ok deh cobain, dan ingat ini Cuma contoh, temen temen bisa menggunakannya untuk keperluan yang lain, misalnya indicator pada Form Isian:


Sekian dulu ya Selamat Mencoba :)

sumber :
http://onta-programing.blogspot.com/2009/06/swing-makeover-part-4-cool-textfield.html
READ MORESwing Make Over / Swing X