Skip navigation


Satu hal yang buat gw menyebalkan adalah membuat sebuah JFrame dengan tampilan yang mewah penuh warna-warni, rupa, bentuk, dan gambar tapi mudah digunakan untuk resolusi layar ataupun ukuran JFrame yang fleksibel. Salah satu solusi yang gw gunakan adalah dengan menggunakan SVG. SVG adalah format grafik vektor yang diimplementasikan dengan menggunakan XML. Karena itu SVG mudah digunakan baik dalam penampilan maupun dalam manipulasi gambar yang ditampilkan.

Dalam tulisan ini gw akan menampilkan gambar di bawah pada JFrame (file SVG dapat diakses di sini, extension odt ubah ke zip). Untuk menampilkannya digunakan library Batik yang disediakan oleh Apache. Library ini merupakan kumpulan kelas yang dapat digunakan untuk memanipulasi grafik dalam format SVG. Selain itu juga disediakan komponen Swing untuk menampilkan grafik SVG tersebut.

Library Batik dapat diambil di link ini pada bagian binary distribution. Kelas yang digunakan untuk menampilkan SVG adalah JSVGCanvas. Misalkan gw membuat sebuah Frame bernama FrameSVG pada project baru dengan menggunakan Netbeans, maka penggunaannya adalah sebagai berikut.

    public FrameSVG() {
        initComponents();
        JSVGCanvas svgCanvas = new JSVGCanvas();
        jPanel1.setLayout(new BorderLayout());
        jPanel1.add(svgCanvas);
        File f = new File("svg1.svg");
        svgCanvas.setURI(f.toURI().toString());
    }


Atau bisa dengan memparsing file SVG ke dalam object SVG Document, seperti contoh di bawah. Cara di bawah ini digunakan jika SVG masih ingin diutak-atik.

public FrameSVG() {
        initComponents();
        JSVGCanvas svgCanvas = new JSVGCanvas();
        jPanel1.setLayout(new BorderLayout());
        jPanel1.add(svgCanvas);
        File f = new File("svg1.svg");
        String parser = XMLResourceDescriptor.getXMLParserClassName();
        SVGDocumentFactory df = new SAXSVGDocumentFactory(parser);
        try {
            SVGDocument SVGDoc = df.createSVGDocument(f.toURI().toString());
            svgCanvas.setDocument(SVGDoc);
        } catch (IOException ex) {
        }
    }

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: