Jumat, 07 Desember 2012

20 days drawing challege

oke hay it's me again haha yesterday i have a deal with norie. we have some engagement with drawing challenge. 20 days drawing challenge, so a day we made an artwork with theme which already set by us. it's set without nothing. its for train our self, to habituate us drawing with full of brush. and we already make a deal, if the one of us does'nt done yet, must be treat hahaha (ini postnya nana) 

Rabu, 14 Maret 2012

ini contoh penggunaan AWT dan SWING

berikut contoh program pada membuat objek button di-click dengan menggunakan event-handling(awt dan swing)


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

class MySwingApplication extends JFrame
implements ActionListener {

public JLabel label;
public JButton button;

private int numClicks = 0;

public MySwingApplication(String title) {
super(title);
setBounds(0, 0, 300, 170);
getContentPane().setLayout(null);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);

label = new JLabel("Jumlah klik yang dilakukan: 0");
label.setLocation(60, 40);
label.setSize(label.getPreferredSize());

button = new JButton("Klik aku!!");
button.setLocation(60, 80);
button.setSize(label.getPreferredSize());
button.addActionListener(this);

getContentPane().add(label);
getContentPane().add(button);

setVisible(true);
}

public void actionPerformed(ActionEvent event) {
if (event.getSource() == button) {
label.setText("Jumlah klik yang dilakukan: " +
(++numClicks));
}
}

public static void main(String[] args) {
MySwingApplication app =
new MySwingApplication("Contoh Event-Handling");
}
}

Bila pada saat kita click sebanyak n kali makan label pada hasilnya akan mencetak sebanyak n kali,,






 

sumber : manchoenk.blogspot.com 

AWT dan SWING . apa sih bedanya ?

Perbedaan AWT & SWING

Dalam membangun objek GUI di Java, Kita bisa menggunakan AWT atau Swing, perbedaan keduanya adalah, bahwa AWT adalah tampilan dasar dari setiap target platform (Windows, Macintosh, Solaris) atau berdiri sesuai dengan mekanisme sebuah platform, seperti slogan Java (Write once run everywhere), hal tersebut bagus untuk sebuah program yang simpel, tetapi menjadi sulit ketika mengimplementasikan sebuah program yang lebih kompleks dan harus sesuai dengan target platform. Setiap User Interface elemen seperti Button, TextField, ScrollBar memiliki tingkah laku (behavior) yang berbeda di setiap platform. Yang lebih parah lagi, AWT User Interface Library memiliki bug yang berbeda di setiap platform, hal ini mengubah slogan Java menjadi (Write once, Debug everywhere).
Maka hadirlah Swing yang menawarkan tampilan yang lebih kaya dan bagus. Swing tidak berdasarkan platform yang dituju tetapi menggunakan metode “Painted” yaitu, setiap User Interface Elemen di Gambar ke dalam window/frame kosong. Sehingga setiap User Interface Elemen akan tampil dan berprilaku sama di setiap platform.
Swing bukan pengganti dari AWT, dan tidak bisa berdiri sendiri, karena setiap program butuh berkomunikasi dengan mekanisme dasar dari target platform seperti Event Handling yang ada di AWT, jadi Swing akan selalu berdampingan dengan AWT.
Sayangnya Swing lebih lambat tampil di layar. Dan ketika User Interface tampak sama di setiap platform, maka juga akan tampak berbeda untuk tampilan standar sebuah platform. Dan Java mengatasinya dengan baik sekali, yaitu Swing menyediakan theme specific (Windows theme, Motif Theme, Ocean Theme), yang bisa disesuaikan dengan platform.



sumber :compirates.wordpress.com

contoh coding untuk I/O stream

import java.io.*;
class CopyFile {
void copy(String input, String output) {
FileReader reader;
FileWriter writer;
int data;
try {
reader = new FileReader(input);
writer = new FileWriter(output);
while ((data = reader.read()) != -1) {
writer.write(data);
}
reader.close();
writer.close();
} catch (IOException ie) {
ie.printStackTrace();
}
}
public static void main(String args[]) {
String inputFile = args[0];
String outputFile = args[1];
CopyFile cf = new CopyFile();
cf.copy(inputFile, outputFile);
}
}

I/O STREAM

Program komputer bisa berguna jika ia bisa berinteraksi dengan dunia lain. Interaksi di sini maksudnya input/output atau I/O. Pada bab ini, kita akan melihat input output pada file dan koneksi jaringan (network). Pada Java, input/output pada file dan jaringan dilakukan berdasarkan aliran (stream), di mana semua objek dapat melakukan perintah I/O yang sama. Standar output (System.out) dan standar input (System.in) adalah contoh aliran.

Setiap objek yang mengeluarkan data ke aliran byte masuk sebagai kelas turunan dari kelas abstrak OutputStream. Objek yang membaca data dari aliran byte diturunkan dari kelas abstrak InputStream.

Kelas 
Kegunaan 
Argumen yang dibutuhkan untuk membuat objek
ByteArrayInputStream
Menggunakan buffer pada memori sebagai aliran input
Buffer yang akan digunakan sebagai aliran input
StringBufferInputStream
Mengubah string menjadi InputStream
Suatu String (di dalamnya sebenarnya menggunakan StringBuffer)
FileInputStream
Untuk membaca informasi dari dalam file
String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor
PipedInputStream
Menghasilkan data yang ditulis oleh PipedOutputStream. Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading
Objek PipedOutputStream
SequenceInputStream
Menggabungkan dua atau lebih InputStream menjadi satu InputStream
Dua atau lebih objek bertipe InputStream atau kontainer bertipe Enumeration yang berisi InputStream yang akan digabungkan
FilterInputStream
Kelas abstrak yang merupakan interface dari beberapa kelas bantu untuk menggunakan InputStream lain

 
Kelas 
Kegunaan 
Argumen yang dibutuhkan untuk membuat objek
ByteArrayOutputStream
Membuat buffer dalam memori. Semua data yang kita kirim akan disimpan di memori ini.
Opsional untuk memberikan besar buffer yang akan disiapkan
FileOutputStream
Untuk menulis informasi ke dalam file
String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor
PipedOutputStream
Informasi yang kita kirim di aliran output ini akan berakhir pada objek bertipe PipedInputStream. Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading
Objek PipedInputStream
FilterOutputStream
Kelas abstrak yang merupakan interface dari beberapa kelas bantu untuk menggunakan OutputStream lain.

SWING java

Swing adalah bagian utama Java GUI widget toolkit.Swing adalah bagian dari Oracle's Java Foundation Classes (JFC)-API untuk menyediakan  graphical user interface (GUI) untuk program Java. Swing dikembangkan untuk menyediakan satu set yang lebih canggih dari komponen GUI dari Abstract Window Toolkit (AWT). Swing memberikan tampilan asli dan merasa bahwa mengemulasi tampilan dan nuansa dari beberapa platform, dan juga mendukung tampilan yang pluggable dan nuansa yang memungkinkan aplikasi untuk melihat dan merasa tidak berhubungan dengan platform yang mendasari. Swing lebih kuat dan fleksibel daripada komponen AWT. Selain komponen akrab seperti tombol, kotak centang dan label, Swing menyediakan komponen canggih seperti beberapa tab panel, panel gulir, pohon, tabel dan daftar. Tidak seperti komponen AWT, Swing komponen tidak diimplementasikan dengan platform kode khusus. Sebaliknya mereka ditulis seluruhnya di Jawa dan karena itu adalah platform-independen. Istilah "ringan" digunakan untuk menggambarkan elemen seperti itu.

 contoh :

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
 
public class SwingExample implements Runnable {
    @Override
    public void run() {
        // Create the window
        JFrame f = new JFrame ("Hello, World!");
        // Sets the behaviour for when the window is closed
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // add a label and a button
        f.getContentPane().add(new JLabel("Hello, world!"));
        f.getContentPane().add(new JButton("Press me!"));
        // arrange the components inside the window
        f.pack();
        //By default, the window is not visible. Make it visible.
        f.setVisible(true);
    }
 
    public static void main(String[] args) {
        SwingExample se = new SwingExample();
        // Schedules the application to be run at the correct time in the event queue.
        SwingUtilities.invokeLater(se);
    }
}

EVENT HANDLING .

Apa itu Event Handling?
  • Ketika user melakukan aksi terhadap sebuah user interface (misalnya meng-klik mouse atau menekan sebuah tombol), maka tindakan ini akan memunculkan sebuah event.
  • Event adalah OBJEK yang mendeskripsikan sebuah kejadian (peristiwa yang terjadi)
  • Event Source adalah pembangkit sebuah event, misalnya mouse click pada sebuah button akan membangkitkan sebuah ActionEvent dgn button sbg Event Source-nya.
  • Event Handler adalah sebuah method yang menerima sebuah objek event, menterjemahkan, dan kemudian memproses interaksi user.
Kategori Event, Interface dan Method












Contoh : TestButton
            import java.awt.*;
public class TestButton {
            private Frame f;
            private Button b;
            public TestButton() {
                        f=new Frame("Test");
                        b=new Button("Press Me");
                        b.setActionCommand("Di-klik");
            }
            public void launchFrame() {
                        b.addActionListener(new ButtonHandler());
                        f.add(b, BorderLayout.CENTER);
                        f.pack();
                        f.setVisible(true);
            }
            public static void main(String args[]) {
                        TestButton guiApp=new TestButton();
                        guiApp.launchFrame();
            }
}

import java.awt.event.*;
public class ButtonHandler implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                        System.out.println("Action terjadi...");
                        System.out.println("Button dalam keadaan "
                                    + e.getActionCommand());
            
}

Hasil :








Jika button “Press Me” tersebut di-klik, maka program akan menuliskan di DOS Console sebagai berikut :