Browser tidak support SVG
Info
Selamat datang di Syabon-dev ....
Jumat, 25 Juli 2014

Posting kali ini adalah game sederhana dengan mengacak kata(Anagram). Inilah tampilannya dengan  Java GUI:



Untuk membuatnya gunakan dua kelas yaitu MainClass dan Anagram. MainClass akan mewarisi method-method yang ada di kelas Anagram. Dengan source kode sebagai berikut:


A. Kelas Anagram

package com.syabon.dev;

import java.util.Random;

public class Anagram
{
    ////////////////////////////////////////////////////////////
    ///// Deklarasi dan inisialisasi variabel
    ///// rand dari kelas Random untuk variabel pengacakan

    Random rand = new Random();
    ///// konstanta WIDTH dan HEIGHT untuk ukuran layar game
    ///// konstanta LINE untuk mencetak garis

    public static final int WIDTH = 520, HEIGHT = 250, LINE = 82;
    ///// cek sebagai penanda peringatan jika level > 5
    ///// chLevel untuk penanda jika cheat level sudah digunakan
    ///// chHealth untuk penanda jika cheat health sudah digunakan

    protected boolean cek = true, chLevel = true, chHealth = true;
    ///// char charAcak[] untuk menyimpan pengacakan huruf
    protected char[] charAcak;
    ///// idxA dan idxB untuk indeks acak
    ///// idx untuk menyimpan indeks kata yang akan diacak
    ///// idxRand untuk menyimpan banyak penggeseran huruf
    ///// pos untuk meggeser huruf ke kiri atau ke kanan
    ///// level untuk menyimpan level sekarang
    ///// health untuk menyimpan nyawa sekarang

    protected int idxA, idxB, idx, idxRand, pos, level, health;
    ///// strAcak untuk menyimpan kata acak
    protected String strAcak;
    ///// String arrAcak[] untuk menyimpan pengacakan posisi array kata
    protected String[] arrAcak;
    ///// cheat level dan health
    protected String cheatLevel = "level ups";
    protected String cheatHealth = "super boy";
    ////////////////////////////////////////////////////////////
   
   
    ///// level 1 dan 6 : "data", "pointer", "struct", "queue", "stack", "list", "string", "array", "null", "memory"
    ///// level 2 dan 7 : "acak","kaca","batu","buta","buku", "kubu","dalang","ladang","pura","rupa"
    ///// level 3 dan 8 : "otak","kota","okta","ruas","rusa", "arus","busa","sabu","buas","usab"
    ///// level 4 dan 9 : "kasur","rusak","sukar","kuras","ruas", "arus","rusa","suar","kitab","bakti"
    ///// level 5 dan 10 : "rusak", "rakus", "kuras", "sukar", "kasur", "tutorial ", "trial out", "ratu lito", "tali tour", "roti laut"

    protected String[][] kata = {{"data", "pointer", "struct", "queue", "stack",
        "list", "string", "array", "null", "memory"},
        {"acak","kaca","batu","buta","buku",
        "kubu","dalang","ladang","pura","rupa"},
        {"otak","kota","okta","ruas","rusa",
        "arus","busa","sabu","buas","usab"},
        {"kasur","rusak","sukar","kuras","ruas",
        "arus","rusa","suar","kitab","bakti"},
        {"rusak", "rakus", "kuras", "sukar", "kasur",
        "tutorial ", "trial out", "ratu lito", "tali tour", "roti laut"}};
   
   
    ///// konstruktor kelas Anagram
    ///// memberi nilai awal level dan health

    public Anagram(int level, int health){
        this.level = level;
        this.health = health;
    }
   
    ///// mengambil nilai index kata acak
    protected int getCurrIdx(){
        return idx;
    }
   
    ///// mencari kata yang akan diacak
    ///// simpan index array di var idx

    protected void setCurrIdx(String[] str){
        ///// memanggil method setArrAcak() untuk mengacak posisi kata
        setArrAcak(str);
        ///// pengacakan dimulai dari 0-10
        idx = rand.nextInt(str.length);
    }
   
    ///// method setArrAcak() untuk mengacak posisi kata
    private void setArrAcak(String[] str){
        ///// simpan array untuk level sekarang di array arrAcak
        arrAcak = str;
        ///// memanggil method tukar
        tukar();
    }
   
    ///// memberikan array untuk level sekarang di array arrAcak
    protected String[] getArrAcak(){
        return arrAcak;
    }
   
    ///// memberikan banyak penggeseran huruf
    protected int getRandIdx(){
        return idxRand;
    }
   
    ///// method setCurrIdx untuk banyak penggeseran huruf
    protected void setCurrIdx(String str){
        ///// simpan hasil pengacakan di var idxRand
        idxRand = rand.nextInt(str.length());
    }
   
    ///// megambil posisi penggeseran
    protected String getMovePos(){
        ///// jika pos == 1
        ///// geser ke kiri

        if(pos == 1)
            return "kiri";
        ///// jika pos == 0
        ///// geser ke kanan

        else
            return "kanan";
    }
   
    ///// method setCurrIdx untuk menentukan arah penggeseran
    protected void setCurrIdx(int pos){
        ///// jika level > 7 maka
        ///// mengacak nilai pos kemudian dicari sisanya
        ///// jika sisa 1 maka akan ke kiri
        ///// jika sisa 0 maka akan ke kanan

        if(getLevel() > 7)
            this.pos = rand.nextInt(pos) % 2;
        ///// level <= 7 maka
        ///// sisa pembagian 0
        ///// dan akan geser ke kanan

        else
            this.pos = pos % 2;
    }
   
    ///// method setKataAcak untuk kata acak sekarang
    protected void setKataAcak(String strAcak){
        this.strAcak = strAcak;
    }
   
    ///// mengambil kata acak sekarang
    protected String getKataAcak(){
        return strAcak;
    }
   
    ///// mengambil hasil dari proses pengacakan huruf
    protected String getAcakHuruf(){
        return String.valueOf(charAcak);
    }
   
    ///// mengacak huruf di kata acak sekarang
    protected void setAcakHuruf(String str){
        ///// charAcak memiliki panjang array sesuai panjang str
        charAcak = new char[str.length()];
        ///// array intAcak untuk menyimpan sementara banyak indeks penggeseran huruf
        int[] intAcak = new int[str.length()];
       
        ////////////////////////////////////////////
        ///// tambahan untuk mengecek method-method
        ////////////////////////////////////////////
        System.out.println("Level    : " + getLevel() + ", Health : " + getHealth());
        System.out.println("chLevel  : " + isCheatLevel() + ", chHealth : " + isCheatHealth());
        System.out.println("Rand idx : " + getRandIdx() + ", Rand pos : " + getMovePos());
        System.out.print("Array    : ");
        for(int i = 0; i < arrAcak.length; i++)
            System.out.print(arrAcak[i] + "   ");
        System.out.println();
        for(int i = 97; i < 123; i++)
            System.out.printf("%c ", i);
        System.out.println("\n");
        ///////////////////////////////////////////

       
        ///// perulangan untuk inisialisasi str ke array charAcak
        for(int i = 0; i < charAcak.length; i++){
            ///// Jika level sekarang > 5 maka
            ///// ditambah penyandian huruf
            /////////////////////////////////////////////
            ///// Lihat ASCII
            ///// for(int i = 0; i < 255; i++){
            /////    System.out.printf("%d : %c\n", i, i);
            ///// }
            /////////////////////////////////////////////

            if(getLevel() > 5){
                ///// Jika penggeseran ke kiri maka
                if(getMovePos().equals("kiri")){
                    ///// jika < 97(a) maka
                    ///// 123 dikurangi (a(97) dikurangi
                    ///// (ubah huruf sekarang ke integer
                    ///// dikurangi banyak penggeseran huruf))

                    if(((int)str.charAt(i) - getRandIdx()) < 97){
                        intAcak[i] = 123 - (97 - ((int)str.charAt(i) - getRandIdx()));
                    ///// jika tidak maka
                    ///// ubah huruf sekarang ke integer
                    ///// dikurangi banyak penggeseran huruf

                    } else {
                        intAcak[i] = (int)str.charAt(i) - getRandIdx();
                    }
                ///// jika penggeseran ke kanan maka
                } else {
                    ///// jika > 122(z) maka
                    ///// ubah huruf sekarang ke integer
                    ///// ditambah banyak penggeseran huruf
                    ///// dikurangi z(122) ditambah 96

                    if(((int)str.charAt(i) + getRandIdx()) > 122){
                        intAcak[i] = ((int)str.charAt(i) + getRandIdx() - 122) + 96;
                    ///// jika tidak maka
                    ///// ubah huruf sekarang ke integer
                    ///// ditambah banyak penggeseran huruf

                    } else {
                        intAcak[i] = (int)str.charAt(i) + getRandIdx();
                    }   
                }
               
                ///// jika bukan spasi maka
                ///// ubah hasil penggeseran ke char

                if(str.charAt(i) != ' ')
                    charAcak[i] = (char)intAcak[i];
                ///// jika tidak maka
                ///// huruf sekarang = spasi

                else
                    charAcak[i] = str.charAt(i);
               
            ///// Jika level <= 5 maka
            ///// inisialisasi huruf ke charAcak

            } else{
                charAcak[i] = str.charAt(i);
            }
        }
       
        ///// perulangan untuk pengacakan huruf
        ///// perulangan sebanyak panjang kata sekarang

        for(int i = 0; i < charAcak.length; i++){
            ///// mengacak index dari 0 - panjang kata sekarang
            ///// menyimpan dalam idxA

            idxA = rand.nextInt(charAcak.length);
            ///// mengacak index dari 0 - panjang kata sekarang
            ///// menyimpan dalam idxB

            idxB = rand.nextInt(charAcak.length);
           
            ///// memanggil method tukar
            tukar(idxA, idxB);
        }
    }
   
    ///// mengambil nilai level sekarang
    protected int getLevel(){
        return level;
    }
   
    ///// mengeset level sekarang
    protected void setLevel(int level){
        this.level =  level;
    }
   
    ///// mengambil nilai health sekarang
    protected int getHealth(){
        return health;
    }
   
    ///// mengeset health sekarang
    protected void setHealth(int health){
        this.health =  health;
    }
   
    ///// mencetak garis
    protected String getLine(){
        String strLine = "";
        for(int i = 0; i < LINE; i++)
            strLine += "-";
        return strLine;
    }
   
    ///// mengambil nilai cek
    protected boolean isCek() {
        return cek;
    }
   
    ///// mengeset cek
    protected void setCek(boolean cek) {
        this.cek = cek;
    }
   
    ///// mengambil nilai chLevel
    protected boolean isCheatLevel() {
        return chLevel;
    }

    ///// mengeset chLevel
    protected void setCheatLevel(boolean chLevel) {
        this.chLevel = chLevel;
    }

    ///// mengambil nilai chHealth
    protected boolean isCheatHealth() {
        return chHealth;
    }

    ///// mengeset chHealth
    protected void setCheatHealth(boolean chHealth) {
        this.chHealth = chHealth;
    }

    ///// method tukar() untuk menukar posisi kata
    private void tukar(){
        ///// perulangan untuk menukar posisi kata
        for(int i = 0; i < arrAcak.length; i++){
            ///// sama seperti pengacakan huruf
            ///// dengan bantuan variabel kosong untuk menukar nilai

            String temp = ""; ///// variabel untuk menukar nilai
            idxA = rand.nextInt(arrAcak.length);
            idxB = rand.nextInt(arrAcak.length);
           
            ///// var temp = kata di idxA
            ///// kata di idxA = kata di idxB
            ///// kata di idxB = var temp

            temp = temp.concat(arrAcak[idxA]);
            arrAcak[idxA] = arrAcak[idxB];
            arrAcak[idxB] = temp;
        }
    }
   
    ///// method tukar() untuk menukar posisi kata
    private void tukar(int a, int b){
        char c;
       
        ///// var c = huruf di idxA
        ///// huruf di idxA = huruf di idxB
        ///// huruf di idxB = var temp

        c = charAcak[a];
        charAcak[a] = charAcak[b];
        charAcak[b] = c;
    }
}



B. Kelas MainClass

package com.syabon.dev;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

///// Kelas MainClass turunan dari kelas Anagram
public class MainClass extends Anagram implements ActionListener, KeyListener
{
    ///////////////////////////////////////////////
    ///// Deklarasi variabel
    ///////////////////////////////////////////////

    private JPanel PanelMain; ///// untuk panel
    private JButton Btn1; ///// menampilkan tombol 1
    private JButton Btn2; ///// menampilkan tombol 2
    private JButton Btn3; ///// menampilkan tombol 3
    private JButton Btn4; ///// menampilkan tombol 4
    private JButton Btn5; ///// menampilkan tombol 5
    private JButton Btn6; ///// menampilkan tombol 6
    private JButton Btn7; ///// menampilkan tombol 7
    private JButton Btn8; ///// menampilkan tombol 8
    private JButton Btn9; ///// menampilkan tombol 9
    private JButton Btn10; ///// menampilkan tombol 10
    private JButton BtnInfo; ///// menampilkan tombol info game
    private JButton BtnTemp; ///// tombol kosong
    private JButton BtnGanti; ///// tombol ganti
    private JLabel LblCek; ///// menampilkan acak huruf
    private JLabel LblLevel; ///// menampilkan level sekarang
    private JLabel LblHealth; ///// menampilkan health sekarang
    private JLabel LblCheat; ///// menampilkan label cheat
    private JLabel LblRand; ///// menampilakan label penggeseran
    private JLabel Line1, Line2; ///// menampilakan garis
    private JTextField TxtCheat; ///// menampilkan kotak cheat
    ///////////////////////////////////////////////
   
    ///// konstruktor MainClass
    public MainClass(int level, int health, String title){
        ///// memanggil konstruktor super class
        super(level, health);
        PanelMain = new JPanel();
        Btn1 = new JButton();
        Btn2 = new JButton();
        Btn3 = new JButton();
        Btn4 = new JButton();
        Btn5 = new JButton();
        Btn6 = new JButton();
        Btn7 = new JButton();
        Btn8 = new JButton();
        Btn9 = new JButton();
        Btn10 = new JButton();
        BtnInfo = new JButton();
        BtnTemp = new JButton();
        BtnGanti = new JButton();
        Line1 = new JLabel();
        Line2 = new JLabel();
        LblCek = new JLabel();
        LblRand = new JLabel();
        LblLevel = new JLabel();
        LblHealth = new JLabel();
        LblCheat = new JLabel();
        TxtCheat = new JTextField();
       
        ///// method initFrameComponents untuk menampilkan frame dan komponen game
        initFrameComponents(title);
    }
   
    ///// method initFrameComponents()
    public void initFrameComponents(String title){
        JFrame frame = new JFrame();
        ///// memberi judul game
        frame.setTitle(title);
        ///// keluar dari game
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ///// set ukuran sesuai konstanta WIDTH dan HEIGHT
        frame.setSize(WIDTH, HEIGHT);
        ///// terlihat
        frame.setVisible(true);
        ///// tidak bisa di ubah ukuran windownya
        frame.setResizable(false);
        ///// set posisi game ke tengah window
        frame.setLocationRelativeTo(null);
        ///// frame di masukkan ke kontainer
        frame.getContentPane().setLayout(null);
       
        ///// set warna background
        PanelMain.setBackground(new Color(153, 153, 255));
        ///// set Layout = null
        PanelMain.setLayout(null);
        ///// set ukuran Panel Main
        PanelMain.setBounds(0, 0, WIDTH, HEIGHT);
        ///// tambahkan Panel Main ke kontainer
        frame.getContentPane().add(PanelMain);
       
        //////////////////////////////////////////
        //layout
        //////////////////////////////////////////

        PanelMain.add(LblLevel); ///// menambahkan label level
        PanelMain.add(LblHealth); ///// menambahkan label health
        PanelMain.add(Line1);  ///// menambahkan garis
        PanelMain.add(LblCek);  ///// menambahkan label pengacakan huruf
        PanelMain.add(LblRand); ///// menambahkan penggeseran huruf
        PanelMain.add(LblCheat); ///// menambahkan label cheat
        PanelMain.add(TxtCheat); ///// menambahkan kotak cheat
        PanelMain.add(Line2); ///// menambahkan garis
        PanelMain.add(BtnInfo); ///// menambahkan tombol info game
        PanelMain.add(BtnGanti); ///// menambahkan tombol ganti kata acak
        for(int i = 0; i < 10; i++){///// perulangan untuk menampilakan tombol 1 - 10
            switchBut(i); ///// memanggil method switchBut
            PanelMain.add(BtnTemp); ///// menambahkan hasil perulangan  ke panel
        }
        //////////////////////////////////////////
       
        ///// set text tombol info
        BtnInfo.setText("Info");
        ///// set ukuran dan posisi tombol
        BtnInfo.setBounds(210, 185, 100, 30);
        ///// tambahkan Action Listener
        BtnInfo.addActionListener(this);
       
        //////////////////////////////////////////
        ///// letak dan ukuran komponen
        //////////////////////////////////////////

        BtnGanti.setText("[   Ganti   ]");
        BtnGanti.setBounds(410, 185, 90, 30);
        BtnGanti.addActionListener(this);
       
        LblLevel.setFont(new Font("Tahoma", 1, 15));
        LblLevel.setBounds(10, 10, 100, 30);
       
        LblHealth.setFont(new Font("Tahoma", 1, 15));
        LblHealth.setBounds(410, 10, 100, 30);
       
        Line1.setText(getLine()); ///// menampilkan garis
        Line1.setFont(new Font("Tahoma", 1, 15));
        Line1.setBounds(10, 40, WIDTH, 10);
       
        Line2.setText(getLine()); ///// menampilkan garis
        Line2.setFont(new Font("Tahoma", 1, 15));
        Line2.setBounds(10, 175, WIDTH, 10);
       
        LblCek.setFont(new Font("Tahoma", 1, 20));
        LblCek.setBounds(25, 135, 200, 40);
       
        LblRand.setFont(new Font("Tahoma", 1, 15));
        LblRand.setBounds(10, 190, 200, 20);
        //////////////////////////////////////////
       
        ///// memanggil method cheat
        ///// tambahkan cheat jika diperlukan

        cheat();
        ///// memanggil method buttonComponent
        ///// untuk set letak dan lain-lain

        buttonComponent();
        ///// memanggil method initComponent
        ///// untuk memberi nilai

        initComponents();
    }
   
    ///// method cheat
    public void cheat(){       
        LblCheat.setText("Cheat");
        LblCheat.setFont(new Font("Tahoma", 1, 12));
        LblCheat.setBounds(280, 140, 50, 30);
       
        TxtCheat.setFont(new Font("Tahoma", 1, 12));
        TxtCheat.setBounds(330, 140, 170, 25);
        ///// jika dirasa memerlukan cheat
        ///// setEnabled = true

        TxtCheat.setEnabled(true);
        ///// menambahkan KeyListener
        TxtCheat.addKeyListener(this);
    }
   
    ///// method buttonComponent
    ///// untuk menambahkan tombol 1 - 10 dan aksinya

    public void buttonComponent(){
        int xx = 90;
        int yy = 30;
        int idx = 0;
       
        for(int y = 60; y <= 100; y += 40){
            for(int x = 10; x <= 410; x += 100, idx++){
                switchBut(idx);
                BtnTemp.setBounds(x, y, xx, yy);
                BtnTemp.addActionListener(this);
            }
        }
    }
   
    ///// method initComponents
    ///// method ini akan selalu dipanggil
    ///// jika naik level, salah tombol dan lain-lain

    public void initComponents(){
        cekChoice();
        setComponent();
    }

    ///// method cekChoice() untuk mengecek pilihan
    ///// method ini akan dieksekusi jika game selesai

    public void cekChoice(){
        ///// jika level == 10 atau health == 0 maka
        if((getLevel() > kata.length*2) || (getHealth() < 1)){
            ///// lakukan perulangan jika user memilih opsi cancel atau close
            for(int cek = JOptionPane.CANCEL_OPTION;
            cek == JOptionPane.CANCEL_OPTION || cek == JOptionPane.CLOSED_OPTION;){
                cek = JOptionPane.showConfirmDialog(null, "Restart?",
                        "Game Selesai", JOptionPane.YES_NO_CANCEL_OPTION);
                    ///// jika opsi ya maka
                    if(cek == JOptionPane.YES_OPTION){
                        setLevel(1); ///// set level = 1
                        setHealth(3); ///// set health = 3
                        setCek(true); ///// set peringatan = true
                        setCheatLevel(true); ///// set cheat level = true
                        setCheatHealth(true); ///// set cheat health = true
                    ///// jika opsi tidak maka
                    } else if(cek == JOptionPane.NO_OPTION){
                        ///// tampilkan pesan
                        JOptionPane.showMessageDialog(null, "Terima Kasih telah bermain..",
                                "syabon-dev.blogspot.com", JOptionPane.INFORMATION_MESSAGE);
                        ///// keluar dari game
                        System.exit(0);
                    }
            }
        }
    }
   
    ///// method setComponent()
    public void setComponent(){
        int levelIdx = 1;
       
        ///// jika level > 5 maka
        if(getLevel() > 5){
            ///// jika peringatan belum ditampilkan maka
            if(isCek()){
                JOptionPane.showMessageDialog(null, "Untuk level 6 ke atas ditambah penyandian huruf !!");
                setCek(false);
            }
           
            ///// lakukan penyandian huruf
            levelIdx = 6;
            setCurrIdx(1000);
            LblRand.setText("Geser ke "+ getMovePos() + " " + getRandIdx());
        ///// jika tidak label penyandian = null
        } else {
            LblRand.setText(null);
        }
       
        ///// mengambil array di level sekarang
        setCurrIdx(kata[getLevel() - levelIdx]);
        ///// mengacak kata yang akan ditampilkan
        setKataAcak(kata[getLevel() - levelIdx][getCurrIdx()]);
        ///// mengacak posisi huruf
        setAcakHuruf(getKataAcak());
        ///// penggeseran huruf
        setCurrIdx(getKataAcak());
       
        ///// menampilkan level sekarang
        LblLevel.setText("Level : " + String.valueOf(getLevel()));
        ///// menampilkan health sekarang
        LblHealth.setText("Health : " + String.valueOf(getHealth()));
        ///// tampilkan huruf acak
        LblCek.setText(getAcakHuruf());
        TxtCheat.setText(null);
       
        ///// menampilkan kata acak di tombol untuk level sekarang
        for(int i = 0; i < 10; i++){
            switchBut(i);
            BtnTemp.setText(getArrAcak()[i]);
        }
    }   
   
    ///// method switchBut akan mengecek tombol yang ditekan
    public void switchBut(int i){
        switch(i){
            case 0: BtnTemp = Btn1; break;
            case 1: BtnTemp = Btn2; break;
            case 2: BtnTemp = Btn3; break;
            case 3: BtnTemp = Btn4; break;
            case 4: BtnTemp = Btn5; break;
            case 5: BtnTemp = Btn6; break;
            case 6: BtnTemp = Btn7; break;
            case 7: BtnTemp = Btn8; break;
            case 8: BtnTemp = Btn9; break;
            case 9: BtnTemp = Btn10; break;
        }
    }

    ///// method test untuk aksi jika tombol 1 - 10 ditekan
    public void test(JButton btn){
        ///// jika tombol == kata yang di acak maka
        if(btn.getText().equals(getKataAcak())){
            ///// tampilkan pesan benar
            JOptionPane.showMessageDialog(null, "Tebakan Benar"
            ,"Anagram (Acak Kata)", JOptionPane.INFORMATION_MESSAGE);
            ///// level naik 1
            setLevel(getLevel() + 1);
            ///// panggil method initComponents

            initComponents();
        ///// jika tidak sama maka
        } else {
            ///// tampilkan pesan salah dan tampilakan kata yang benar
            JOptionPane.showMessageDialog(null, "Tebakan Salah\n"
            + "--------------------------------------\nKata Acak : " + getKataAcak()
            , "Anagram (Acak Kata)", JOptionPane.ERROR_MESSAGE);
            ///// health - 1
            setHealth(getHealth() - 1);
            ///// panggil method initComponents
            initComponents();
        }
    }
   
    @Override
    public void actionPerformed(ActionEvent evt){
        for(int i = 0; i < 10; i++){
            ///// method switchBut akan mengecek tombol yang ditekan
            ///// gunakan perulangan untuk mengecek 1 per 1
            ///// hasil tombol yang ditekan dimisalkan BtnTemp

            switchBut(i);
            ///// pengecekan tombol
            if(evt.getSource() == BtnTemp)
                ///// panggil method test
                test(BtnTemp);
        }
       
        ///// Jika tombol info ditekan
        ///// tampilkan informasi game

        if(evt.getSource() == BtnInfo) {
            JOptionPane.showMessageDialog(null, "Dibuat oleh : Ahmad Sya'bani\n"+
            "----------------------------------------------\n" +
            "syabon-dev.blogspot.com", "Anagram Info", JOptionPane.INFORMATION_MESSAGE);
        }
       
        ///// Jika tombol ganti ditekan
        ///// initComponents

        if(evt.getSource() == BtnGanti){
            initComponents();
        }
    }
   
    @Override
    public void keyPressed(KeyEvent evt) {
        ///// jika menekan enter
        if(evt.getKeyCode() == KeyEvent.VK_ENTER){
            ///// jika text == cheatHealth maka
            if(TxtCheat.getText().equals(cheatHealth)){
                ///// jika cheat Health belum digunakan / true
                if(isCheatHealth()){
                    ///// setHealth = 3
                    setHealth(3);
                    ///// set cheat health menjadi false / sudah digunakan
                    setCheatHealth(false);
                    ///// memanggil method initComponents()
                    initComponents();
                ///// jika tidak
                } else {
                    ///// tampilkan pesan
                    JOptionPane.showMessageDialog(null, "Cheat tidak bisa digunakan lagi !!");
                    TxtCheat.setText(null);
                }
            ///// jika text == cheatLevel maka
            } else if (TxtCheat.getText().equals(cheatLevel)){
                ///// jika cheat Level belum digunakan / true
                if(isCheatLevel()){
                    ///// level + 1
                    setLevel(getLevel() + 1);
                    ///// set cheat level menjadi false / sudah digunakan
                    setCheatLevel(false);
                    ///// memanggil method initComponents()
                    initComponents();
                ///// jika tidak maka
                } else{
                    ///// tampilkan pesan
                    JOptionPane.showMessageDialog(null, "Cheat tidak bisa digunakan lagi !!");
                    TxtCheat.setText(null);
                }
            }
        }
    }

    @Override public void keyReleased(KeyEvent evt) {}
    @Override public void keyTyped(KeyEvent evt) {}
   
    public static void main(String[] args){
        ///// jika diperlukan set menjadi true
        JFrame.setDefaultLookAndFeelDecorated(false);
        ///// memberi nilai awal konstruktor
        new MainClass(1, 3, "Anagram (Acak Kata) v.2");
    }
}


Keterangan:
           : package disesuaikan dengan kebutuhan
           : opsional jika diperlukan untuk testing dan debuging
           : penjelasan

Banyak ya source codenya, tenang saja untuk download source codenya bisa klik link download di bawah ini. Selain dalam bahasa Java, juga terdapat source code dalam bahasa C:


0 komentar:

Posting Komentar