Dian Aditya

Penjahit Digital.

Swing & Android? Gak Jauh Beda

Woho, baru kemaren saya coba bikin aplikasi Android sederhana dengan sedikit bimbingan dari temen :D Ternyata tidak terlalu sulit membuat sebuah tampilan aplikasi sederhana untuk Android ini, apalagi team dari Android ini juga sudah menyediakan tools yang dapat membantu kita dalam membangun application UI. Tools trsebut adalah ADT (Android Development Tools) yang merupakan plugin untuk Eclipse. Tetapi kali ini saya tidak akan membahas tentang bagaimana membuat aplikasi dengan GUI designer tersebut. Mengapa? Karena jika kita menggunakan GUI designer-nya android maka tools akan meng-generate kode dalam bentuk XML yang baru kemudian di-mapping ke dalam kode Java. Jadi? Ya ya ya, saya akan meberi sedikit contoh bagaimana membuat aplikasi Android sederhana dengan menggunakan kode Java secara menyeluruh, lalu kita bandingkan kode tersebut dengan aplikasi berbasis Swing yang saya buat setelahnya. Pertama download Android SDK dan ADT di sini beserta cara instalasinya. Buat Android Project Baru, kemudian isikan Project Name, Package Name dan Activity Name-nya. Berikut baris kodenya :

package com.mervpolis.dwx.android;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
 
public class Main extends Activity {
 private Button btnSubmit;
 private TextView lblAlamat;
 private TextView lblNama;
 private TableRow row1;
 private TableRow row2;
 private TableRow row3;
 private TableLayout tableLayout;
 private EditText txtAlamat;
 private EditText txtNama;
 
    private void initComponents() {
     tableLayout = new TableLayout(this);
     setContentView(tableLayout);
     {
         row1 = new TableRow(this);
         tableLayout.addView(row1);
         {
             lblNama = new TextView(this);
             lblNama.setText("Nama";);
             lblNama.setWidth(100);
             row1.addView(lblNama);
         }
         {
             txtNama = new EditText(this);
             txtNama.setSingleLine();
             txtNama.setWidth(150);
             row1.addView(txtNama);
         }
     }
     {
         row2 = new TableRow(this);
         tableLayout.addView(row2);
         {
             lblAlamat = new TextView(this);
             lblAlamat.setText("Alamat";);
             row2.addView(lblAlamat);
         }
         {
             txtAlamat = new EditText(this);
             row2.addView(txtAlamat);
         }
     }
     {
         row3 = new TableRow(this);
         row3.setGravity(Gravity.CENTER);
         tableLayout.addView(row3);
         {
             btnSubmit = new Button(this);
             btnSubmit.setText("Save";);
             btnSubmit.setOnClickListener(new OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     btnSubmitOnclick(v);
                 }
             });
             row3.addView(btnSubmit);
         }
     }
 }
 
    private void btnSubmitOnclick(View v) {
     AlertDialog d = new AlertDialog.Builder(this).create();
     d.setMessage("Nama : " + txtNama.getText() + " \nAlamat : "
             + txtAlamat.getText());
     d.setCanceledOnTouchOutside(true);
     d.show();
 }
 
    /*
  * Main method-nya di sini!
  */
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
 
        initComponents();
 }
}
 

Kemudian bandingkan dengan kode berikut :

package com.mervpolis.dwx.swing;
 
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
 
public class Main extends JFrame {
 
    private JButton btnSubmit;
 private JLabel lblAlamat;
 private JLabel lblNama;
 private JPanel row1;
 private JPanel row2;
 private JPanel row3;
 private JPanel tableLayout;
 private JTextField txtAlamat;
 private JTextField txtNama;
 
    private void initComponents() {
     tableLayout = new JPanel();
     tableLayout.setLayout(new GridLayout(0, 1));
     setContentPane(tableLayout);
     {
         row1 = new JPanel();
         tableLayout.add(row1);
         {
             lblNama = new JLabel();
             lblNama.setText("Nama    ";);
             row1.add(lblNama);
         }
         {
             txtNama = new JTextField();
             txtNama.setColumns(10);
             row1.add(txtNama);
         }
     }
     {
         row2 = new JPanel();
         tableLayout.add(row2);
         {
             lblAlamat = new JLabel();
             lblAlamat.setText("Alamat  ";);
             row2.add(lblAlamat);
         }
         {
             txtAlamat = new JTextField();
             txtAlamat.setColumns(10);
             row2.add(txtAlamat);
         }
     }
     {
         row3 = new JPanel();
         tableLayout.add(row3);
         {
             btnSubmit = new JButton();
             btnSubmit.setText("Save";);
             btnSubmit.addMouseListener(new MouseAdapter() {
                 @Override
                 public void mouseClicked(MouseEvent e) {
                     btnSubmitMouseClicked(e);
                 }
             });
             row3.add(btnSubmit);
         }
     }
 
        pack();
     setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     setVisible(true);
 }
 
    private void btnSubmitMouseClicked(MouseEvent e) {
     JOptionPane.showMessageDialog(this, "Nama : " + txtNama.getText()
             + " \nAlamat : " + txtAlamat.getText());
 }
 
    public static void main(String a[]) {
     new Main().initComponents();
 }
 
}
 

Kemudian jalankan keduanya kode yang paling atas akan menghasilkan tampilan seperti berikut : Sedangkan kode dibawahnya akan menghasilkan : Fiuh, akhirnya selesai juga :D Amati kedua-duanya, tidak jauh berbeda bukan baris kodenya? Dan menariknya keduanya menghasilkan tampilan yang hampir sama, hanya saja perbedaannya program pertama berjalan pada Android, sedangkan program kedua berjalan pada komputer desktop. Selamat mencoba… Special thanks to Dias.

Comments