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
Gimana ya supaya tampilan JDesktopPane nya memenuhi layar sekaligus dengan gambarnya?
BalasHapusMaksudnya fullscreen? kalau cuma gambarnya yang full ukuran ukuran desktop, tinggal ganti
BalasHapusgraphics.drawImage(img, 0, 0, getWidth(), getHeight(), null);
mantap, alus lah rasanya :D hehe...
BalasHapusmakasih sharingnya
itu harus didrag tau sudah otomatis yah soalx kalo ngga di drag ke form ngga" mau
BalasHapusOtomatis mas Rokki, cuma kalau di netbeans bisa di drag and drop
HapusMaf ka nanya,
Hapusbagaimana untuk pemanggilan kelas JDesktopPaneWarna nya ya
biar di MDI nya beruba keren gitu
@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
BalasHapusmaaf gan mw nanya, gmn caranya agar bg dekstopPane nya transparan...?
BalasHapuscara menghubungkan java class dengan java frame a gimana gan
BalasHapus