PENGERTIAN JAVA SWING
Swing
merupakan perbaikan kelemahan di AWT (Another Windowing Toolkit). Banyak kelas
swing menyediakan komponen alternatif terhadap AWT. Contohnya kelas JButton
swing menyediakan fungsionalitas lebih banyak dibanding kelas Button. Selain
itu komponen swing umumnya diawali dengan huruf “J”, misalnya JButton,
JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing
menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen
Swing ditandai dengan adanya instruksi : import javax.swing.*;
Beberapa perbedaan AWT dan Swing,
AWT merupakan komponen heavyweight (kelas berat) sedangkan Swing lightweight
(kelas ringan). Swing memiliki lebih banyak komponen. Fasilitas Swing Look and
Feel : Metal, Windows, Motif. Komponen Swing berdasar model-view, yaitu suatu
cara pengembangan komponen dengan pemisahan penyimpanan dan penanganan data
dari representasi visual data.
Bahasa pemrograman Java merupakan
salah satu bahasa pemrograman yang umum digunakan untuk mengembangkan aplikasi
basis data yang dibuat menggunakan MySQL.
Swing toolkit
menyediakan banyak sekali
komponen untuk membangun aplikasi GUI desktop. Swing toolkit juga
menyediakan class-class untuk menangani
interaksi antara aplikasi dan user menggunakan
standard input seperti keyboard
dan mouse.
Komponen-komponen
Swing
Komponen-komponen
yang disediakan swing mencakup semua GUI toolkit yang lazim digunakan dalam
apilasi desktop, seperti : JTabel,JList, JTree, JButton, JLabel dan masih banyak komponen-komponen
lainnya yang sudah teruji dan siap pakai.
Selain komponen GUI,
swing juga menyediakan fasilitas untuk proses undo, komponen untuk mengolah
text, internationalization,Komponen GUI yang mendukung penyandang cacat
(accessibility support) dan fasilitas drag-and-drop.
Look and Feel
merupakan fasilitas yang unik dalam swing. Dengan adanya fasilitas Look and
Feel ini kita bisa dengan mudah merubah tampilan dari program kita
sesuai dengan keinginan dan tujuan kita.
Misalnya, agar program terlihat
fancy atau agar program terlihat konsisten dalam segala keadaan.
Swing juga menyediakan library
Java 2D untuk pengolahan data secara visual, seperti mengolah gambar,
object 2D, bahkan animasi. SwingLabs.org menyediakan libary Swing Painter yang
merupakan pengembangan dari Java 2D,
Swing Painter ini memungkinkan aplikasi swing mempunyai tampilan yang indah dan
terlihat profesional.
Java 6.0 menambahkan
banyak sekali fitur-fitur baru ke dalam package swing, termasuk dukungan untuk library OpenGL
menggunakan JOGL, Tray Icon dan Web Service.
dukungan ini swing
menjadi lebih poweful dan mempunyai masa depan yang cerah.
Struktur Komponen Swing
Secara arsitektur,
Swing dibangun diatas arsitektur AWT (Abstract Windows Toolkit). AWT adalah GUI
toolkit yang dikembangkan oleh Sun engineer
sebelum swing muncul.Kelemahan utama AWT adalah fleksibilitas tampilan
GUI, seperti painting method yang masih sangat primitif.
Swing dimaksudkan
untuk memperbaiki kekurangan dari AWT tanpa harus membuang teknologi yang sudah
dibuat dan membuat GUI toolkit baru dari nol.
Komponen AWT
diletakkan dalam satu package yaitu java.awt, didalamnya terdapat komponen-komponen GUI dasar, salah
satunya adalah Component. Class Component adalah moyang dari sebagian besar
komponen AWT maupun Swing. CheckBox, Label, Button dan beberapa komponen AWT
lainnya adalah turunan langsung dari
class Component. Namun dalam kenyataanya arsitektur demikian tidak memberikan fleksibilitas yang
cukup memadai untuk membuat
berbagai macam komponen baru yang
dibutuhkan dalam desktop application.
Swing muncul dengan
membawa teknologi AWT yang telah ditambahkan dengan banyak kemampuan. Nyaris
semua komponen GUI dari swing merupakan
turunan class Container dan class Container adalah turunan dari class
Component.
Contoh Penggunaan Swing Pada Java :
Contoh 1
import javax.swing.*;
public class StringSwing{
public static void main(String
args[]){
String a ;
a =
JOptionPane.showInputDialog("Masukan String :");
int panjang;
panjang = a.length();
JOptionPane.showMessageDialog(null,
" Jumlah Karakternya adalah " + panjang);
System.exit(0);
}
}
Contoh 2
package gui;
import javax.swing.*;
public class first {
/**
* Belajar Perkenalan JAVA
* thescripts.web.id
*/
public static void main(String[]
args){
// TODO Auto-generated method stub
JFrame f = new
JFrame("Judul");
JPanel p = new JPanel();
JButton b = new
JButton("Button");
p.add(b); // Fungsi untuk menambahkan
tombol
f.setContentPane(p); // Fungsi menambahkan panel ke media FRAME
f.show(); // TAMPILKAN
}
}
Contoh 3
package javaapplication3;
/**
*
* @author kuro
* http://kuroartz.web.id
* http://blog.kuroartz.web.id
*
*/
import javax.swing.*;
import java.awt.event.*;
class AplikasiEvent5 extends JFrame{
JMenuBar mb=new JMenuBar();
JMenu file=new JMenu(“File” );
JMenu edit=new JMenu(“Edit” );
JMenu help=new JMenu(“Help” );
JMenuItem open=new JMenuItem(“Open”
);
JMenuItem close=new JMenuItem(“Close”
);
JMenuItem quit=new JMenuItem(“Quit”
);
JMenuItem about=new JMenuItem(“About”
);
JMenuItem copy=new JMenuItem(“Copy”
);
JMenuItem paste=new JMenuItem(“Paste”
);
JMenuItem cut=new JMenuItem(“Cut” );
JLabel lblnama=new JLabel(“Nama” );
JTextField txnama=new JTextField(30
);
JLabel lblnim=new JLabel(“NIM” );
JTextField txnim=new JTextField(7 );
JLabel lblkelamin=new JLabel(“Jenis
Kelamin” );
JRadioButton pria=new JRadioButton(“Pria”
);
JRadioButton wanita=new
JRadioButton(“Wanita” );
ButtonGroup kelompok=new
ButtonGroup();
JLabel lblhobi=new JLabel(“Hobi” );
JCheckBox baca=new JCheckBox(“Dugem”
);
JCheckBox mancing=new JCheckBox(“Futsal”
);
JCheckBox jalan=new JCheckBox(“Berantem”
);
JLabel label1=new JLabel(“Nilai UTS”
);
JTextField tx1=new JTextField(20 );
JLabel label2=new JLabel(“Nilai UAS”
);
JTextField tx2=new JTextField(20 );
JButton cetak=new JButton(“Cetak” );
JTextArea hasil=new JTextArea();
AplikasiEvent5()
{
setTitle(“Event Sederhana” );
setLocation(300,100 );
setSize(300,420 );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE
);
}
void KomponenVisual()
{
setJMenuBar(mb );
mb.add(file );
mb.add(edit );
mb.add(help );
file.add(open );
file.add(close );
edit.add(copy );
edit.add(paste );
edit.add(cut );
close.setEnabled(false );
file.add(quit );
help.add(about );
setVisible(true );
getContentPane().setLayout(null );
getContentPane().add(lblnama );
lblnama.setBounds(10,10,80,20 );
getContentPane().add(txnama );
txnama.setBounds(105,10,175,20 );
getContentPane().add(lblnim );
lblnim.setBounds(10,33,80,20 );
getContentPane().add(txnim );
txnim.setBounds(105,33,70,20 );
getContentPane().add(lblkelamin );
lblkelamin.setBounds(10,56,80,20 );
kelompok.add(pria );
kelompok.add(wanita );
getContentPane().add(pria );
pria.setBounds(105,56,50,20 );
getContentPane().add(wanita );
wanita.setBounds(160,56,70,20 );
getContentPane().add(lblhobi );
lblhobi.setBounds(10,80,70,20 );
getContentPane().add(baca );
baca.setBounds(105,80,100,20 );
getContentPane().add(mancing );
mancing.setBounds(105,103,100,20 );
getContentPane().add(jalan );
jalan.setBounds(105,126,100,20 );
getContentPane().add(label1 );
label1.setBounds(10,146,80,20 );
getContentPane().add(tx1 );
tx1.setBounds(105,146,175,20 );
getContentPane().add(label2 );
label2.setBounds(10,169,80,20 );
getContentPane().add(tx2 );
tx2.setBounds(105,169,175,20 );
getContentPane().add(cetak );
cetak.setBounds(10,191,270,20 );
getContentPane().add(hasil );
hasil.setBounds(10,214,270,140 );
setVisible(true );
}
void AksiReaksi()
{
cetak.addActionListener(new
ActionListener()
{
public void
actionPerformed(ActionEvent event)
{
hasil.append(lblnama.getText() + ” :
” + txnama.getText()+”\n” );
hasil.append(lblnim.getText() + ” : ”
+ txnim.getText()+”\n” );
if(pria.isSelected()==true )
{
hasil.append(lblkelamin.getText() + ”
: ” + pria.getText()+”\n” );
}
else
{
hasil.append(lblkelamin.getText() + ”
: ” + wanita.getText()+”\n” );
}
if(baca.isSelected()==true)
{
hasil.append(lblhobi.getText() + ” :
” + baca.getText()+”\n” );
}
if(mancing.isSelected()==true)
{
hasil.append(lblhobi.getText() + ” :
” + mancing.getText()+”\n” );
}
if(jalan.isSelected()==true)
{
hasil.append(lblhobi.getText() + ” :
” + jalan.getText()+”\n” );
}
hasil.append(label1.getText() + ” : ”
+ tx1.getText()+”\n” );
hasil.append(label2.getText() + ” : ”
+ tx2.getText()+”\n” );
double a=0.0, b=0.0, c=0.0;
try {
a=Double.parseDouble(tx1.getText()
);
b=Double.parseDouble(tx2.getText()
);
} catch (NumberFormatException nfe){
nfe.printStackTrace();
}
JButton btn=(JButton)
event.getSource();
if (btn==cetak){
c=((a+b) / 2 );
}
hasil.append(new String().valueOf(“NIlai
AKhir ” + c));
}
});
}
public static void main(String
args[])
{
AplikasiEvent5 e5=new
AplikasiEvent5();
e5.KomponenVisual();
e5.AksiReaksi();
}
}
Output :
Semoga bermanfaat ya kawan.
0 komentar: