Sunday, May 27, 2007

Drag n Drop sederhana

Applikasi Drag n Drop sederhana
(java application - netbean)

Langkah – langkah yang harus dilakukan dalam membuat aplikasi DnD adalah sebagai berikut :

1. Buat project baru File->New Project..., pilih category General dan project Java Application, klik Next dengan nama appDrag&Drop, tanpa main class (uncheck create main class) kemudian klik Finish.
2. Tambahkan form (JFrame Form) ke dalam project tersebut dengan nama class “DragDrop” dan package “dnd”
3. Design form tersebut seperti gambar dibawah ini



Design tersebut terdiri dari jPanel, jLabel, dan jTextField.
4. Ubah ke mode design ke mode source (select View->Editor->Source).
5. Import beberapa kebutuhan yang diperlukan kedalam DragDrop.java dibawah package dnd;, seperti dibawah ini

import java.awt.*;
import javax.swing.JComponent;
import javax.swing.TransferHandler;
import java.awt.event.*;

6. Buat class baru didalam class DragDrop, yaitu DragMouseAdapter untuk meng-hadle aksi yang dilakukan oleh mouse (DnD)

private class DragMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
JComponent c = (JComponent)e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
}
}

7. Pada konstruktor (method DragDrop), tambahkan code dibawah ini

public DragDrop() {
initComponents();
jTextField1.setDragEnabled(true);
jLabel1.setTransferHandler(new TransferHandler("text"));
MouseListener listener = new DragMouseAdapter();
jLabel1.addMouseListener(listener);
}


8. Jalankan aplikasi dengan menekan tombol F6
9. Untuk mencoba aplikasi DnD, klik label Helllo, drag, dan drop pada textfield. Jika berhasil makan string Helllo akan ada pada textfield (ter-copy)

Read More...

Friday, May 25, 2007

When I Say That I Love You

WHEN I SAY THAT I LOVE YOU
Franky Sihombing

You feel that you're lonely
It Doesn't prove that you are alone
You feel that no body want you
It doesn't mean that no one cares about you

Reff:
Listen to the word i say
That i will always by your side
You mean everything to me
That i will never leave you
Cause i love you so

If you think that you're nothing
But for me you are something beautiful
You think that you can't do anything
But you can do a lot of things with me

When i say that i love you
It's mean i give the best for you
When i say that i love you
I will give everything for you

No more fear about the future
And blame for the past
I'll give everithing
When i say that i love you

I want you to know that i died for you
I want you to nkow that i'll give all my life for you
When i say that i love you....
Say that i love you....

When i say that i love you... i realy do..

Read More...

Friday, May 4, 2007

Pratikum appSocketClient

Sedangkan untuk aplikasi client, berikut adalah tutorial nya :

1. Buat project baru, dengan nama project appSocketClient tanpa main class

2. Buat class baru, dengan cara klik kanan nama project, kemudian pilih new->Java Class, dan beri nama class “appSocketClient” dan package “app.socket”

3. Import beberapa komponen dibawah ini dalam appSocketClient.java :

import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;


import java.io.*;
import java.net.*;


4. Pada class appSocketClient lakukan perubahan pada nama class, dan tambahkan beberapa deklarasi seperti dibawah ini

Nama class menjadi :

public class appSocketClient extends JFrame implements ActionListener

Deklarasi variabel (dalam class appSocketClient diluar method yg ada didalam class tersebut) :

JLabel text, clicked;
JButton button;
JPanel panel;
JTextField textField;
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;


5. Akan ada error, karena method actionPerformed belum dibuat. Sekarang tambahkan method actionPerformed kedalam class appSocketClient.

public void actionPerformed(ActionEvent event){
Object source = event.getSource();
int i=0,j=0;
if(source == button){
//Send data over socket
String text = textField.getText();
out.println(text);
textField.setText(new String(""));
//Receive text from server
try{
String line = in.readLine();
textField.setText(line);
System.out.println("Text received :" + line);
}catch (IOException e){
System.out.println("Read failed");
System.exit(1);
}
}
}

6. Buat method baru didalam class appSocketClient, untuk membuat objek socket

public void listenSocket(){
//membuat objek socket
try{
socket = new Socket("localhost", 4444);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}catch (UnknownHostException e) {
System.out.println("Unknown host: localhost.eng");
System.exit(1);
} catch (IOException e) {
System.out.println("No I/O");
System.exit(1);
}
}

7. Pada konstruktor (method appSocketClient) dalam class appSocketClient, tambahkan code berikut ini

public appSocketClient() {
text = new JLabel("Text to send over socket:");
textField = new JTextField(20);
button = new JButton("Click Me");
button.addActionListener(this);

panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.white);
getContentPane().add(panel);
panel.add("North", text);
panel.add("Center", textField);
panel.add("South", button);
}

8. Terakhir, tambahkan method main pada class appSocketClient

public static void main(String[] args){
appSocketClient frame = new appSocketClient();
frame.setTitle("Client Program");

WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(l);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}


9. Jalankan aplikasi dengan menekan tombol F6
10. Catatan : jika aplikasi disisi client tidak menemukan server, maka applikasi akan keluar. Sehingga untuk menjalankannya, jalankan terlebih dahulu aplikasi di sisi server, kemudian aplikasi di sisi client.


Read More...

Pratikum appSocketServer

Berikut adalah tutorial membuat aplikasi socket server berbasis desktop application :

1. Buat project baru, File->New Project..., pilih kategori General dan project Java Application, kemudian isi nama projectnya socketServerApp, dan uncheck create main class

2. Tembahkan form baru ke dalam project, carannya klik kanan pada nama project, pilih new form, dan pilih Jframe Form..

3. Isi nama class “appSocketServer” dan nama packagenya “app.socket”

4. Akan muncul windows design, dan buat design seperti pada gambar d bawah ini :

5. Beralih ke editor source (pilih View->Editor->Source)

6. Masukkan beberapa komponen berikut ini dibawah package app.socket dalam appSocketServer.java

import java.awt.event.*;
import java.net.*; // kebutuhan socket
import java.io.*; // untuk io exception
import javax.swing.JTextArea;


7. Buat class baru ClientWorker (untuk komunikasi dengan socket) didalam appSocketServer.java dan diluar class appSocketServer()

/**
* class ClientWorker : menerima request yg datang dari client,
* mengembalikan socket object (client),
* dan merepresentasikan koneksi;
* komunikasi dengan socket (baca/tulis);
* menampilkan data (diterima dan di kirim)
*/
class ClientWorker implements Runnable {
private Socket client;
private javax.swing.JTextArea textArea;

// konstruktor
ClientWorker(Socket client, javax.swing.JTextArea textArea) {
this.client = client;
this.textArea = textArea;
}

public void run(){
String line;
BufferedReader in = null;
PrintWriter out = null;
boolean done = false;

try{
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(client.getOutputStream(), true);
}catch (IOException e) {
System.out.println("input or output stream gagal");
System.exit(-1);
}

while(!done){
try{
line = in.readLine(); // baca data
if(line == null)
done=true;
else
{
// tampilkan data yang diterima ke textArea
textArea.append("Receive\t: "+line+"\n");

//kirim kembali data ke client
line = line + " juga";
out.println(line); // tulis data
// tampilkand data yang di kirim ke textarea
textArea.append("Send\t: "+line+"\n");
}
}catch (IOException e) {
System.out.println("baca gagal");
System.exit(-1);
}
}
}
}

8. Pada class appSocketServer, deklarasikan objek socket berikut (deklarasi variabel dilakukan didalam class appSocketServer dan diluar semua method yang ada di dalam class appSocketServer).

ServerSocket serverSocket = null;

9. Buat method baru untuk membuat socket object, didalam kelas appSocketServer

/**
* Methoe listenSocket : membuat koneksi socket
*/
public void listenSocket()
{
try{
// membuat onject socket pada port number :4444
serverSocket = new ServerSocket(4444);
}catch (IOException e) {
System.out.println("Could not listen on port 4444");
System.exit(-1);
}
// selama conect ke client
while(true){
ClientWorker clWorker;
try{
clWorker = new ClientWorker(serverSocket.accept(), jTextArea1);
Thread tread = new Thread(clWorker);
tread.start();
}catch (IOException e) {
System.out.println("Accept failed: 4444");
System.exit(-1);
}
}
}

10. Buat satu method lagi didalam class appSocketServer untuk menghentikan tread dan juga program

protected void finalize(){
try{
serverSocket.close();
System.out.println("Close socket");
}catch (IOException e) {
System.out.println("Could not close socket");
System.exit(-1);
}
}

11. Dalam method main(), ubah code dengan code dibawah ini

public static void main(String args[]) {
appSocketServer frame = new appSocketServer();

WindowListener wListen = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(wListen);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}

12. Jalankan applikasi dengan menekan tombol F6, makan akan muncul window baru, yaitu window untuk memilih main project, klik OK maka akan muncul applikasi socket server yang telah dibuat


Read More...