Menambahkan Background pada JDesktopPane | Tempat Belajar dan Berbagi Pengetahuan Java dan PHP
Home » , , , , , , » Menambahkan Background pada JDesktopPane

Menambahkan Background pada JDesktopPane

Dipostingkan Oleh Unknown pada Selasa, 11 September 2012 - Diupdate Pada: 9/11/2012


Sudah lama tidak bermain dengan tampilan java desktop, kangen juga. Iseng iseng membuat Background pada JdesktopPane, sekalian aja di share moga-moga aja bisa bermanfaat bagi rekan-rekan. 

JdesktopPane adalah container yang digunakan untuk membuat interface dokumen yang berjumlah banyak (multiple-document interface) atau virtual desktop. Cara penggunaanya adalah pertama dengan cara membuat objek JInternalFrame atau JFrame terlebih dahulu lalu baru kita masukkan JdesktopPane di dalamnya. JDesktopPane mempunyai extends JLayeredPane untuk mengatur InternalFrame yang berkemungkinan dapat menindih satu sama lain. 

Kelas ini biasanya digunakan sebagai induk dari JInternalFrames untuk menyediakan objek DesktopManager pluggable ke JInternalFrames. Para installUI dari L &F implementasi khusus bertanggung jawab untuk menetapkan variabel desktopManager dengan tepat. Ketika parent dari JInternalFrame adalah JDesktopPane, JdesktpPane harus mendelegasikan sebagian besar perilaku untuk desktopManager tersebut (menutup, mengubah ukuran, dll). 
Berikut Tampilan Standar Jdesktop Pane (Nimbus LookAndFeel)



Supaya aplikasi terlihat lebih menarik atau sekedar menambahkan inisial perusahaan kita pada aplikasi, kita terkadang perlu untuk menambahkan gambar atau warna tertentu sebagai background pada JDesktopPane. 

Untuk merubah background pada JDesktopPane sangat mudah, kita bias meng - override method paintComponent  pada Class JDesktopPane.
Langkah-langkah yang perlu dilakukan hanya terdiri dari 2 langkah:
1. Buat sebuah class dengan meng-extend kan Class JDesktopPane;
2. Override method paintComponent   dan ketikan kode untuk merubah backgroundnya.

Pusing?, oke kita coba dengan sample kode aja:

Background JDesktopPane dengan gradient warna

Coba buat sebuah class, ketikan kode berikut:
package luwax.blogspot;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import javax.swing.JDesktopPane;

/**
 *
 * @author Luwax
 */
public class JDesktopPaneWarna extends JDesktopPane {
    private static final Color BACKGROUND = Color.ORANGE;
    private static final Color BACKGROUND_2 = Color.WHITE;

    @Override
    protected void paintComponent(Graphics g) {
        Graphics2D graphics = (Graphics2D) g.create();
        
        int midY = 100;

        Paint topPaint = new GradientPaint(0, 0, BACKGROUND,
                0, midY, BACKGROUND_2);
        graphics.setPaint(topPaint);
        graphics.fillRect(0, 0, getWidth(), midY);
        
        Paint bottomPaint = new GradientPaint(0, midY + 1, BACKGROUND_2,
                0, getHeight(), BACKGROUND);
        graphics.setPaint(bottomPaint);
        graphics.fillRect(0, midY, getWidth(), getHeight());

        graphics.dispose();
    }
}

Ini Hasilnya:

Background JDesktopPane dengan Gambar

Coba buat sebuah class, ketikan kode berikut:
package luwax.blogspot;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;

/**
 *
 * @author Luwax
 */
public class JDesktopPaneGambar extends JDesktopPane {

    @Override
    protected void paintComponent(Graphics g) {
        Graphics2D graphics = (Graphics2D) g.create();

        Image img = new ImageIcon(getClass().getResource("/luwax/blogspot/bg.jpg")).getImage();

        graphics.drawImage(img, 0, 0, getWidth(), getHeight(), null);


        graphics.dispose();
    }
}

Ini Hasilnya:

Background JDesktopPane dengan gradient warna dan gambar 

Coba buat sebuah class, ketikan kode berikut:
package luwax.blogspot;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Paint;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;

/**
 *
 * @author Luwax
 */
public class JDesktopPaneCampur extends JDesktopPane {
    private static final Color BACKGROUND = Color.BLUE;
    private static final Color BACKGROUND_2 = Color.WHITE;

    @Override
    protected void paintComponent(Graphics g) {
        Graphics2D graphics = (Graphics2D) g.create();
        
         int midY = 100;

        Paint topPaint = new GradientPaint(0, 0, BACKGROUND,
                0, midY, BACKGROUND_2);
        graphics.setPaint(topPaint);
        graphics.fillRect(0, 0, getWidth(), midY);
        
        Paint bottomPaint = new GradientPaint(0, midY + 1, BACKGROUND_2,
                0, getHeight(), BACKGROUND);
        graphics.setPaint(bottomPaint);
        graphics.fillRect(0, midY, getWidth(), getHeight());

        Image img = new ImageIcon(getClass().getResource("/luwax/blogspot/ico1.png")).getImage();

        int imgX = img.getWidth(null);
        int imgY = img.getHeight(null);
        graphics.drawImage(img, (getWidth() - imgX) / 2, (getHeight() - imgY) / 2, imgX, imgY, null);


        graphics.dispose();
    }
}

Ini Hasilnya:


Silahkan berkreasi sesuai dengan selera, berikut salah satu paduan yang biasa di buat:


Silahkan download kode sumbernya disini: http://www.mediafire.com/?i3v3ldbi815xu4l

Share this article :

9 komentar:

  1. Gimana ya supaya tampilan JDesktopPane nya memenuhi layar sekaligus dengan gambarnya?

    BalasHapus
  2. Maksudnya fullscreen? kalau cuma gambarnya yang full ukuran ukuran desktop, tinggal ganti
    graphics.drawImage(img, 0, 0, getWidth(), getHeight(), null);

    BalasHapus
  3. mantap, alus lah rasanya :D hehe...

    makasih sharingnya

    BalasHapus
  4. itu harus didrag tau sudah otomatis yah soalx kalo ngga di drag ke form ngga" mau

    BalasHapus
    Balasan
    1. Otomatis mas Rokki, cuma kalau di netbeans bisa di drag and drop

      Hapus
    2. Maf ka nanya,
      bagaimana untuk pemanggilan kelas JDesktopPaneWarna nya ya
      biar di MDI nya beruba keren gitu

      Hapus
  5. @Agung Tri Prastowo, pemanggilan classnya biasa aja gan JDesktopPaneWarna dsk = new JDesktopPaneWarna() di frame utama yang akan menampung JDesktopPaneWarna nya. Supaya mirip dengan dicontoh, pake LookAndFeel Nimbus

    BalasHapus
  6. maaf gan mw nanya, gmn caranya agar bg dekstopPane nya transparan...?

    BalasHapus
  7. cara menghubungkan java class dengan java frame a gimana gan

    BalasHapus

Cari Artikel



 
Support : Admin
Copyright © 2013. Tempat Belajar dan Berbagi Pengetahuan Java dan PHP - All Rights Reserved
Template Created by Creating Website Modified by CaraGampang.Com
Proudly powered by Blogger