Belajar Java Programming JPanel -Untuk membuat GUI dengan tambahan seperti tombol, TextBoxes, Lists dan sebagainya, sebelumnya kita harus memahami mengenai JPanel terlebih dahulu.
JPanel merupakan sebuah wadah yang digunakan untuk menampung widget-widget dari Swing.
JPanel ini digunakan agar developer memiliki pengendalian lebih baik terhadap posisi dan gaya dari widget-widget pada layar, selain itu juga dimaksudkan untuk memberikan struktur yang lebih baik pada saat membuat kode program.
Dalam dunia pembuatan GUI yang professional, maka JPanels adalah hal yang fundamental.
Mengapa JPanel bersifat kritikal?
Sebelumnya kita kembali ke JFrame, JFrame adalah wadah Top Level. Kemudian JFrame ini di bagi menjadi beberapa pane, seperti di bawah ini :
![]() |
Frame dan Pane (Sumber : Sun Mycrosystem) |
JFrame terdiri dari :
- Glass Pane, berada di posisi paling atas
- Content Pane
- Layered Pane
- Root Pane
Setiap pane memiliki fungsi yang berbeda-beda, namun yang menjadi perhatian sekarang adalah Content Pane.
Content Pane adalah tempat dimana kita menyimpan semua text, tombol, atau gambar yang kita inginkan untuk ditampilkan pada program, ya inilah Graphics User Interface.
Kita dapat mengakses Content Pane secara langsung, namun akan lebih baik bila kita menggunakan JPanel sebagai sebuah layer atau lapisan diatas Content Pane.
Apa keuntungan menggunakan JPanel?
Dengan menggunakan JPanel, memungkinkan kita untuk memanipulasi segala sesuatu yang ada di layar dengan usaha yang lebih sedikit.
Contoh 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import javax.swing.*; public class ContohPane{ public JPanel membuatContentPane(){ JPanel panelKu = new JPanel(); panelKu.setOpaque(true); return panelKu; } private static void buatDanTampilkanGUI() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("Ada JPanel Di Sini!"); ContohPane paneKu = new ContohPane(); frame.setContentPane(paneKu.membuatContentPane()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 150); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { buatDanTampilkanGUI(); } }); } } |
Penjelasan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
public JPanel membuatContentPane(){ // ini adalah tempat untuk menyimpan widget JPanel panelKu = new JPanel(); //contents pane harus Opaque panelKu.setOpaque(true); return panelKu; } /** Di dalam class ContohPane, kita membuat method membuatContentPane(). Method ini akan mengatur apa yang akan ada pada layar. JPanel yang dikembalikan / return akan diset sebagai Content Pane kita. Perhatikan bahwa kita mengatur JPanel yang ada pada Content Pane menjadi Opaque. Opaque adalah lawan dari transparan. Hal ini dikarenakan beberapa sistem operasi mengatur JPanel menjadi trasparan secara default, jika kita membiarkan hal ini, program kita akan berjalan baik pada beberapa OS dan tidak akan berjalan baik pada OS lainnya. */ ContohPane paneKu = new ContohPane(); /** Untuk mengatur Content Pane dari JFrame ke JPanel yang baru saja kita buat dengan method membuatContentPane(), pertama-tama kita harus membuat objek dari class ContohPane yaitu paneKu. */ frame.setContentPane(paneKu.membuatContentPane()); /** Kemudian kita tambahkan JPanel yang dikembalikan dari method membuatContentPane(), sebagai content pane pada JFrame. */ |
Setelah semuanya lengkap, maka saatnya menampilkannya pada layar.
Output :
![]() |
Ouput |
Contoh 2:
Pada contoh ke-2 ini Anda akan menambahkan tombol langsung ke frame. Sedangkan slider dan text area akan ditampung di panel, kemudian panel tersebut di tambahkan ke frame. Layout manager dalam hal ini border layout digunakan untuk mengatur posisi dan ukuran komponen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class FrameUtama extends JFrame{ private JButton tombol; private MyTextPanel myTextPanel; public FrameUtama(){ super("Hello World"); setLayout(new BorderLayout());//Membuat objek BorderLayout myTextPanel = new MyTextPanel(); tombol = new JButton("Klik Tombol");//Membuat objek tombol tombol.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }); add(myTextPanel, BorderLayout.CENTER);//menambahkan text area di bagian tengah add(tombol, BorderLayout.SOUTH);//menambahkan tombol di bagian bawah setSize(600, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class MyTextPanel extends JPanel { private JTextArea myJTextArea; public MyTextPanel(){ myJTextArea = new JTextArea(); setLayout(new BorderLayout()); add(new JScrollPane(myJTextArea), BorderLayout.CENTER); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import javax.swing.SwingUtilities; public class MyApp { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new FrameUtama(); } }); } } |
Contoh output:
Nah, itulah pembahasan mengenai belajar Java programming JPanel, semoga dapat membantu anda yang sedang mempelajari GUI Java.
Leave a Reply