Professional Documents
Culture Documents
mulai mulai
Control
jdk-6u3-windows-i586-p.exe Panel
Ubah setingan
Performance and
Update 3 - License
Maintenance
Windows
ACCEPT nb : pada Classical
View pilihan ini tidak
ada.
Install to
c:\jdk6\ System
Install to Advanced
c:\jre6\
Environment
Variables
selesai
System Variables
PATH
Instalasi jdk + jre
Edit
selesai
Pada bagian akhir Variabel
value tambahkan
;c:\jdk6\bin OK
OK OK
E:\terserah\………>javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are
used
-classpath <path> Specify where to find user class files
-cp <path> Specify where to find user class files
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-d <directory> Specify where to place generated class files
-encoding <encoding> Specify character encoding used by source files
.
.
.
Jika Java Development Kit (JDK) sudah terinstall dengan benar dan
setting path untuk compilernya benar maka bila diketikkan
JAVAC dari command promt manapun akan keluar seperti tampilan diatas.
E:\terserah\………>java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
.
Jika Java Runtime Environment (JRE) sudah terinstall dengan benar dan
setting path untuk compilernya benar maka bila diketikkan
JAVA dari command promt manapun akan keluar seperti tampilan diatas.
zebelAHku.java
E:\DATA\…>javac zebelAHku.java
Bila tidak terjadi errrrrror maka akan muncul file baru bernama
zebelAHku.class
int i;
String s1 = "Sebelahku manis sekali.";
for(i=0;i<=10;i++)
System.out.print(s1);
}
}
Tambahkan string
public class zebelAHku {
public static void main(String args[]){
int i;
String s1 = "Sebelahku manis sekali.";
String s2 = "Semoga dia jadi milikku.";
for(i=0;i<=10;i++) {
System.out.print(s1);
System.out.println(s2);
}
}
}
int i=10;
String s1 = "Sebelahku manis sekali.";
String s2 = "Semoga dia jadi milikku.";
while(--i>= 0) {
System.out.print(s1);
System.out.println(s2);
}
}
}
int i=10;
String s1 = "Sebelahku manis sekali.";
String s2 = "Semoga dia jadi milikku.";
do {
System.out.print(s1);
System.out.println(s2);
}while(--i>= 0);
}
}
Silahkan ulangi men-JAVAC dan men-JAVA
Kita sudah belajar bagaimana menulis, meng-compile dan menjalankan program java.
Tapi masak sih java yang beigut ngetop kok tampilnya dari DOS prompt gitu ?
Kali ini kita akan melangkah ke pemrogramam GUI ( Graphical User Interface ). Yang
sekarang popular untuk GUI di java adalah SWING, dengan nama package
javax.swing.*
tapi dia punya pendahulu, alias ortu, gitulah istilah gokilnya nama packagenya
java.awt.*
so yaaa berdasarkan sopan and santun maka kita kenalan sama ortunya dulu tho.
cebelahKU.java
import java.awt.Frame;
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
Maksud dari diagram tersebut adalah package java.awt.Frame merupakan turunan dari
package java.awt.Window, kemudian java.awt.Window adalah turunan dari
java.awt.Container, begitu seterusnya.
Kita scroll terus pada dokumentasi Frame tersebut mari kita cari statement dari program
cebelahKU.java diatas, yaitu :
f.setVisible(true);
setVisible(boolean b)
void Shows or hides this Window depending on the value of parameter b.
show()
void Deprecated. As of JDK version 1.5, replaced by setVisible(boolean).
Oh ya kita kembali ke cebelahKU.class tadi yang nggak bisa di-close. Ada dua cara
pertama Ctrl-Alt-Del, kemudian muncul Task Manager kemudian di End Task, atau close
saja jendela Command Promt-nya.
Kita akan mencoba deprecated dulu baru kemudian menyelesaikan gimana harus meng-
close window dengan mulusssssssssss.
cebelahKU.java
import java.awt.Frame;
….\docs\api\deprecated-list.htm
Silahkan dilihat
Dari situ bos-bos bisa langsung search show, cari yang kelas dari java.awt.Window.
Disitu ada keterangan sekarang diganti dengan method apaaa seeeh.
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
}
Silahkan ulangi men-JAVAC dan men-JAVA
Dan sekarang jendela yang kita buat kalau di close sudah bisa, tidak harus meng-close
jendela command promt.
Sebenarnya di java banyak sekali masalah, dan masalah itu sering sekali tidak kita temui
di dokumentasi maupun di tutorial standard dari sun microsystem. Cara penyelesaian
diatas hamba dapat dari www.roseindia.net sebenarnya ada cara lain tapi cara yang ini
hamba anggap lebih mudah tuk dimengerti dan lebih mudah untuk kelanjutan tujuan
akademis
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
}
Cobalah klik dibeberapa bagian darilayar computer bos-bos. Apa yang terjadi ?
Jendelanya nongol terus kan ! Coba diubah nilai boolean maupun angka dari method-
method yang digunakan diatas. Kemudian ada hal lain yang sebaiknya dilakukan adalah
mengunjungi dokumentasi untuk setiap package yang digunakan. Syukur-syukur
berkenan untuk mencoba baik method maupun field yang ada.
KUNING Panel
HIJAU
Component
Di java ada tiga lapisan yang harus kita ketahui, pertama adalah Frame, kemudian
ditindih dengan Panel dan pada panel diisi oleh Component. Frame adalah Top-Level-
Container [ wadah tingkat tertinggi ]. Hasil akhir dari program ini bisa bos-bos lihat di
direktori MerahKuningHijau.
MeKuHi.java
import java.awt.Frame;
import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
}
Silahkan ulangi men-JAVAC dan men-JAVA
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
}
Oke bos-bos sekarang sudah mendapatkan jendela berukuran 250,600 dan sudah tampil
ditengah. Kemudian bos-bos akan menambahkan Panel paling atas berwarna merah pada
sepertiga bagian dari jendela yang sudah bos-bos buat.
Pada program diatas bos-bos sudah menambahkan dua package yang di-import, coba
sekarang kunjungi dokumentasi pada direktori :
/docs/api/java/awt/Color.html
/docs/api/java/awt/Panel.html
MeKuHi.java
import java.awt.Frame;
.
.
public class MeKuHi{
public static void main(String args[]){
.
.
Frame f = new Frame("Merah Kuning Hijau");
f.setLayout(null);
f.setLocation(awalJendX,awalJendY);
.
.
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
}
Nah sekarang bos-bos sudah dapatkan kotak merah di sepertiga bagian atas dari program
ciptaan bos-bos yang terhormat.
Layout begitu penting sehingga bos-bos akan temui dikesempatan berikutnya.
Kali ini bos-bos akan menambahkan dua panel berikutnya yaitu panel tengah
[ berwarna kuning ] dan panel bawah [ berwarna hijau ]. Mudah bukan ?
Bukaaaaaaaan.
Nah sekarang bos-bos sudah dapatkan kotak merah di sepertiga bagian atas dari program
ciptaan bos-bos yang terhormat.
Layout begitu penting sehingga bos-bos akan temui dikesempatan berikutnya.
This time, eh kali ini bos-bos akan menambahkan sebuah Component favorit yaitu
Button. Mari bos coba untuk menambahkannya pada panel bawah.
Nah sekarang bos-bos sudah dapatkan tombol pada panel hijau. Tapi kalau diceklek
masih tak ada perubahan. O ya cobanlah menghilangkan setLayout pada panelBawah.
Apa yang terjadi ?
tombolBawah.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle("Bisa di Ceklek");
}
}
);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e){}
}
Bos-bos, sekarang tombol yang ada pada panel bawah kalau di ceklek sudah bisa
mengganti Judul pada jendela utama.
Listener yang dalam arti harfiahnya pendengar adalah rutin baku yang disediakan oleh
java untuk mengani [handling] kejadian-kejadian [events] yang berpasangan dengannya.
Bos-bos sudah belajar dua jenis listener yaitu window listener dan action listener.
Pembahasan lebih rincinya, nanti yooooo !
Bos-bos sekalian, sekarang sudilah kiranya bos-bos mengganti isi dari public void
actionPerformed menjadi sbb :
tombolBawah.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle("Kuning Merah Hijau");
panelAtas.setBackground(Color.yellow);
panelTengah.setBackground(Color.red);
}
}
);
.
.
.
Bos-bos, sekarang tombol yang ada pada panel bawah kalau di ceklek sudah bisa
1. Mengganti Judul pada jendela utama jadi Kuning Merah Hijau
2. Merubah warna panel atas menjadi Kuning dan panel tengah menjadi merah
Oke bos-bos mari kita lanjutkan dengan menambahkan Button pada panelAtas
dan panelTengah. So chek this out
MeKuHi.java
.
.
.
Panel panelBawah = new Panel();
panelBawah.setSize(lebarPanel,tinggiPanel);
panelBawah.setLocation(0,2*tinggiJendela/3);
panelBawah.setBackground(Color.green);
f.add(panelBawah);
Sebelum kita membuat tombol atas dan tengah berekasi maka sebaiknya kita
ubah dulu reaksi dari tombol bawah.
tombolAtas.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle("Kuning Hijau Merah");
panelAtas.setBackground(Color.yellow);
panelTengah.setBackground(Color.green);
panelBawah.setBackground(Color.red);
tombolTengah.setVisible(true);
tombolAtas.setVisible(false);
}
}
);
tombolTengah.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle("Merah Kuning Hijau");
panelAtas.setBackground(Color.red);
panelTengah.setBackground(Color.yellow);
panelBawah.setBackground(Color.green);
tombolBawah.setVisible(true);
tombolTengah.setVisible(false);
}
}
);
tombolBawah.addActionListener(
new ActionListener(){
.
.
1. Deklarasikan sebuah kelas penangan kejadian dan tentukan kelas mana yang
mengimplementasikan (melaksanakan) antarmuka [interface] ActionListener atau
meng-extends suatu kelas yang mengimplementasikan suatu antarmuka
ActionListener. Contohnya :
2. Daftarkan suatu instance dari kelas penangan kejadian sebagai suatu listener pada
satu atau beberapa komponen. Contohnya :
suatuKomponen.addActionListener(instancedari ClassBosYangMulia);
3. Masukkan kode program yang akan dijalankan didalam antar muka listener.
Contohnya :
public AksiBozz () disebutnya Constructor tapi apa itu Constructor kita obrolin nanti
aja ya. Kali ini tentang listener dulu aja.
AksiBozz.java
import java.awt.Frame;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class AksiBozz
extends Frame
implements ActionListener {
public AksiBozz (){
}
public void actionPerformed (ActionEvent e){
}
}
Untuk tahu benar atau salahnya silahkan ulangi men-JAVAC dan men-JAVA
AksiBozz.java
import java.awt.Frame;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
AksiBozz.java
import java.awt.Frame;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AksiBozz
extends Frame
implements ActionListener {
Untuk tahu benar atau salahnya silahkan ulangi men-JAVAC dan men-JAVA
Tidak bisa di-close window-nya ???? Jadi ????
Pada program diatas ditambahkan FlowLayout dan this paa Constructor. Nanti akan kita
bahas. Apa itu ?
getActionCommand()
Returns the command string associated with this action.
[ mengeluarkan nilai string dari aksi yang dilakukan ]
Bos-bos sekalian sudah faham bahwa tiap-tiap Button mempunyai nilai string yang sudah
dideklarasikan diatas. So lihatlah pada bagian awal dari program AksiBozz.java.
AWT Swing
Button JButton
TextField JTextField addActionListener() actionPerformed(ActionEvent e)
MenuItem JMenuItem
Slider JSlider addChangeListener() stateChanged(ChageEvent e)
CheckBox JCheckBox addItemListener() itemstateChanged()
Key board ke komponen addKeyListener() keyPressed(), keyReleased()
KeyTyped()
mouseClicked(), mouseEntered(),
Mouse ke komponen addMouseListener() mouseExited(), mousePressed(),
mouseReleased()
addMouseMotionListener() mouseMoved(), Mouse Dragged()
windowOpened(WindowEvent e)
windowActivated(WindowEvent e)
Frame JFrame addWindowListener() windowIconified(WindowEvent e)
windowDeiconified(WindowEvent e)
windowDeactivated(WindowEvent e)
windowClosed(WindowEvent e)
………./tutorial/uiswing/events/api.html
Kita sudah mencoba dua buah macam layout, yaitu null dan FlowLayout. Kedua layout
ini mempunyai efek yang berbeda jika window atau jendela kita resize [ubah ukurannya].
Layout null mengharuskan kita memahami persis setiap komponen. Jika komponen yang
kita letakkan pada layer begitu banyak sudah pasti cara ini akan rumit dan menjemukan.
FlowLayout berusaha mengatur tata letak komponen sesuai dengan ukuran layer yang
ada. Pada AWT disediakan beberapa sarana Layout. Masing-masing objek container
memiliki pengatur tata letak yang merupakan instance dari semua class yang
mengimplemantasikan interface LayoutManager. Hal ini diatur dengan method
setLayout. Setiap kali Panel diubah ukurannya (atau diatur ukurannya untuk pertama
kali), LayoutManager digunakan untuk meletakkan masing-masing Component
didalamnya.
Border Layout
Class BorderLayout mengimplementasikan gaya layout umum untuk jendela, dengan
memilikik empat komponen sempit pada sisi-sisinya dan satu daerah yang luas di tengah
yang dapat mengembang dan menyusut. Masing-masing daerah ini disebut North,
South, East, West dan Center.
public DuemoBorderLayout () {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args){
DuemoBorderLayout jend =
new DuemoBorderLayout();
}
}
Silahkan men-JAVAC dan men-JAVA
DuemoBorderLayout.java
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public DuemoBorderLayout () {
super("DuWeMo Border Layout");
setVisible(true);
setSize(300,200);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public DuemoBorderLayout () {
super("DuWeMo Border Layout");
setVisible(true);
setSize(300,200);
setLayout(new BorderLayout());
add("North",new Button("Atas"));
add("South",new Button("Bawah"));
add("East",new Button("Kanan"));
add("West",new Button("Kiri"));
add("Center",new TextArea(""));
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
Grid Layout
Class GridLayout mengimplementasikan tata letak untuk kisi komponen sederhana yang
seragam. Konstruktor digunakan untuk menentukan jumlah baris dan kolom.
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
setLayout(new GridLayout(n,n));