Thursday, April 30, 2009

Membuat MenuBar Ala Windows Vista - Vista Style MenuBar


Sejak dirilisnya Windows Vista, terdapat banyak perubahan tampilan pada aplikasi yang berjalan padanya, berbeda dengan pada Sistem Operasi sebelumnya. Misalnya pada MS Office 2007, Paint dan sebagainya berubah dari segi tampilan menubarnya. Jika biasanya menubar berbentuk drop-dwon atau diklik kemudian muncul menu di bawahnya, akan tetapi untuk vista style, menubar berbentuk tab.

Tampilan model begini pun diikuti berbagai aplikasi yang lain dan sudah menjadi trend. Misalnya MindManager, NetOP dan Nitro PDF kesemuanya mengikuti gaya menubar yang sama.

Untuk membuat tampilan seperti itu pada aplikasi Java cukup mudah. Anda dapat menggunakan kelas javax.swing.JTabbedPane yang diletakkan dengan layout java.awt.BorderLayout.NORTH.

Untuk membuatnya, ikuti langkah berikut:
  1. Buat objek dari kelas javax.swing.JTabbedPane sebagai pengganti dari kelas javax.swing.JMenuBar
  2. Buat objek dari kelas javax.swing.JButton sebagai pengganti dari kelas javax.swing.JMenuItem
  3. Masukkan semua sub menu pada kelas javax.swing.JPanel
  4. Masukkan setiap objek dari kelas javax.swing.JPanel ke kelas javax.swing.JTabbedPane
  5. Tempelkan objek dari kelas javax.swing.JTabbedPane ke Frame utama dengan layout java.awt.BorderLayout.NOTH
  6. Selesai
Kode selengkapnya adalah sebagai berikut:


package umar.faisol.vistastyle;

import javax.swing.JFrame;
import javax.swing.WindowConstants;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JTabbedPane;
import javax.swing.BorderFactory;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Color;

public class MainForm extends JFrame
{
    public MainForm()
    {
        super("Vista Style");
        setSize(400, 350);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(menuVista(), BorderLayout.NORTH);
        getContentPane().add(tampilan(), BorderLayout.CENTER);
    }
    
    private JTabbedPane menuVista()
    {
        JTabbedPane tabbedPane = new JTabbedPane();
        
        tabbedPane.addTab("File", menuFile());
        tabbedPane.addTab("Edit", menuEdit());
        
        return (tabbedPane);
    }
    
    private JPanel menuFile()
    {
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        
        ImageIcon baru = new ImageIcon("../gambar/baru.png");
        ImageIcon simpan = new ImageIcon("../gambar/simpan.png");
        ImageIcon keluar = new ImageIcon("../gambar/keluar.png");
        
        panel.add(new JButton("Baru", baru));
        panel.add(new JButton("Simpan", simpan));
        panel.add(new JButton("Keluar", keluar));
        
        return (panel);
    }
    
    private JPanel menuEdit()
    {
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        
        ImageIcon cari = new ImageIcon("../gambar/cari.png");
        ImageIcon atur = new ImageIcon("../gambar/atur.png");
        
        panel.add(new JButton("Cari", cari));
        panel.add(new JButton("Atur", atur));
        
        return (panel);
    }
    
    private JPanel tampilan()
    {
        JPanel panel = new JPanel();
        panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLUE), "Tampilan Utama"));
        
        return (panel);
    }
}


Jika dijalankan, tampilannya adalah sebagai berikut:


Cukup mudah bukan???
Source code lengkap dapat didownload di sini.

Tuesday, April 7, 2009

Menampilkan JasperReport pada Aplikasi Java

Jika pada tulisan sebelumnya sudah dipelajari cara membuat desain report dengan iReport, maka hal paling penting adalah memanggil/menampilkan hasil desain tersebut ke dalam aplikasi Java. Untuk membuatnya, ikuti cara berikut:

Pertama, buat desain form sederhana dengan satu tombol seperti berikut:


Kedua, buat method dengan nama misalnya cetak(). Lakukan pemanggilan report pada method ini. Langkahnya:
1. Load desain xml-nya
JasperDesign jasperDesign = JasperManager.loadXmlDesign(".." + File.separator + "report" + File.separator + "mahasiswa.xml");

2. Kompilasi report

JasperReport jasperReport = JasperManager.compileReport(jasperDesign);

3. Buat koneksi ke database, variabel dari java.sql.Connection ini yang akan dijadikan argumen ke report.

Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:derby://localhost:7539/mahasiswa", "sa", "umar");


4. Fill report dengan data yang diambil dari objek Connection dan parameter lain yang diperlukan.

JasperPrint jasperPrint = JasperManager.fillReport(jasperReport, new HashMap(), con);

5. Tampilkan report. Dapat digunakan JasperViewer atau JRViewer.
JasperViewer.viewReport(jasperPrint, false);

Jika kelima langkah tersebut selesai, panggil method cetak() tersebut pada tombol cetak pada methode actionPerformed().

Hasilnya adalah seperti berikut, mudah bukan?

Download source code di sini

Sunday, April 5, 2009

Java - Mudah Membuat Laporan dengan JasperReport

Pencetakan laporan merupakan bagian penting dalam pembuatan program. Pada Java SDK sudah disediakan API untuk pencetakan laporan. Akan tetapi, cara seperti ini sangat susah karena harus menentukan koordinat (x, y) secara manual dalam mencetak tulisan maupun gambar pada kertas.

Cara termudah dapat menggunakan JasperReport. Membuat laporan dengan JasperReport ini cukup mudah karena disediakan iReport sebagai designernya. Sebelum dimulai tutorialnya, silakan download versi terbarunya. Sebagai contoh akan dibuat report sederhana menggunakan wizard.

1. Untuk membuat laporan dengan JasperReport, pertama buat desain report dengan iReport.


2. Pada menu File pilih Report Wizard


3. Pada dialog iReport Wizard pilih New pada Connections/Data Sources
4. Pada Connections properties pilih Database JDBC connection
5. Kemudian isikan data berikut:
Name : Mahasiswa
JDBC Driver : org.apache.derby.jdbc.ClientDriver
User Name : sa
Password : umar
Anda dapat mengisi sesuai dengan database yang digunakan.
6. Setelah setting koneksi selesai klik Save

7. Kemudian kembali pada iReport Wizard klik Design query
Anda dapat memilih kolom apa saja (atau query) yang akan ditampilkan. Kemudian klik OK.


8. Pada fields selection pilih semua kolom >>, klik next
9. Pada group by pilih jenis kelamin
10. Pada layout pilih tabular layout, untuk jenisnya terserah Anda
11. Klik next dan finish
12. Ganti judulnya menjadi Report Mahasiswa
13. Simpan dan beri nama dengan mahasiswa.xml
14. Untuk mencoba menjalankan, pilih Build --> Execute (With active connection)

Hasilnya adalah sebagai berikut:


Anda dapat mengubah desainnya dengan drag-drop. Cukup mudah bukan?

Untuk dapat menampilkannya pada program Java, tunggu bagian selanjutnya ^_^

Thursday, April 2, 2009

Mengganti Dekorasi Window pada JFrame

Dekorasi Window pada JFrame

Untuk dapat membuat program Java standalone digunakan top level container, yaitu JFrame, JDialog, JWindow dan
JApplet. Pada unumnya untuk sebuah aplikasi digunakan kelas JFrame. Namun, tampilan dekorasi window default adalah seperti yang biasanya kita lihat, monoton.

Bagaimana cara merubah dekorasi window (window decoration) dari JFrame?


Ikuti langkah berikut!

Pertama, matikan (disable) dekorasi window. Ini dapat dilakukan dengan
memanggil method setUndecorated(true).
Kedua, atur style dari RootPane. Caranya dengan memanggil method setWindowDecorationStyle(argumen) dari RootPane.

Argumennya dapat diisi dengan syle sesuai selera. Isi dengan konstanta dari kelas JRootPane. Misalnya jika ingin tampilan dekorasi window dari JFrame seperti JFileChooser, maka argumen diisi

JRootPane.FILE_CHOOSER_DIALOG.

Untuk konstanta lain dari kelas JRootPane dapat dilihat pada dokumentasi Java.
Contoh kodenya adalah sebagai berikut:

public class Style extends JFrame implements Runnable
{
public Style()
{
super("Contoh Dekorasi Window");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.FILE_CHOOSER_DIALOG);
setSize(300, 300);
}

public void run()
{
setVisible(true);
}

public static void main(String args[])
{
SwingUtilities.invokeLater(new Style());
}
}

Setelah dikompilasi dan dijalankan, maka hasilnya adalah sebagaimana berikut:


Tampak tampilannya seperti kelas JFileChooser.

Selamat Mencoba!

Source code dapat didownload disini.