Panel berfungsi sebagai container component (komponen wadah) dimana komponen Java lainnya diletakkan. Anda dapat meletakkan panel di dalam panel yang lain. Layout manager default untuk kelas JPanel adalah FlowLayout.
Baca artikel:
- Menggunakan Layout Manager Kelas GridLayout Di Java
- Menggunakan Layout Manager Kelas BorderLayout Di java
Anda dapat mengubah layout manager default ini dengan layout manager lain disesuaikan dengan kebutuhan. Selain sebagai komponen wadah, panel juga biasa digunakan sebagai kanvas untuk menggambar obyek berdimensi dua atau tiga seperti bujur sangkar, lingkaran, persegi panjang dan sebagainya.
Baca artikel Membuat Frame Di Java Dengan Kelas JFrame
Kelas JPanel adalah lightweight container yang dikode secara lengkap menggunakan Java dan tidak tergantung pada platform. Adapun hierarki turunan dari kelas JPanel adalah sebagai berikut:

JPanel mempunyai empat buah konstruktor untuk membuat atau mengkonstruksi obyek panel. Tabel di bawah ini adalah dua konstruktor kelas JPanel yang sering digunakan di dalam program Java:
Tabel Konstruktor Kelas JPanel
Konstruktor | Keterangan |
---|---|
JPanel() | Mengkonstruksi obyek JPanel dengan FlowLayout sebagai layout manager default |
JPanel(LayoutManager layout) | Mengkontruksi obyek JPanel dengan menentukan layout manager. |
Berikut ini adalah contoh program Java membuat antar muka grafis (GUI) yang terdiri dari beberapa komponen Java seperti obyek dari kelas JLabel, JTextField dan JButton yang kemudian disunan sesuai dengan tata letak tertentu. Contoh program ini menggunakan obyek panel dari kelas JPanel untuk membantu penyusunan komponen agar mendapatkan hasil sesuai dengan harapan.
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | // Nama file : DemoPanel.java // Mendemonstrasikan penyusunan komponen dengan bantuan panel // mengimpor kelas import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.JLabel; import java.awt.GridLayout; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.Container; // Deklarasi kelas public class DemoPanel extends JFrame { public DemoPanel() { JTextField text1, text2, text3; JLabel label1, label2, label3; JButton button1, button2; JPanel panel1, panel2, panel3; label1 = new JLabel("Nilai Pertama"); label2 = new JLabel("Nilai Kedua"); label3 = new JLabel("Hasil kalkulasi"); panel1 = new JPanel(); panel1.setLayout(new GridLayout(3, 1)); panel1.add(label1); panel1.add(label2); panel1.add(label3); text1 = new JTextField(15); text2 = new JTextField(15); text3 = new JTextField(15); panel2 = new JPanel(); panel2.setLayout(new GridLayout(3, 1)); panel2.add(text1); panel2.add(text2); panel2.add(text3); button1 = new JButton("Kali (x)"); button2 = new JButton("Tambah (+)"); panel3 = new JPanel(); panel3.setLayout(new FlowLayout(FlowLayout.RIGHT)); panel3.add(button1); panel3.add(button2); Container container = getContentPane(); container.setLayout(new BorderLayout()); container.add(panel1, BorderLayout.LINE_START); container.add(panel2, BorderLayout.LINE_END); container.add(panel3, BorderLayout.PAGE_END); } // Metoda main public static void main(String[] args) { DemoPanel frame = new DemoPanel(); frame.setTitle("Kelas DemoPanel"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(280, 150); frame.setVisible(true) } } |

Untuk menghasilkan antarmuka (user interface) yang baik dan sesuai keinginan, dapat digunakan panel sebagai komponen wadah pembantu. Anda terlebih dahulu perlu menentukan layout manager dari panel untuk disesuaikan dengan kebutuhan sebelum meletakkan komponen di dalamnya. Komponen dapat diletakkan dan disusun terlebih dahulu di dalam panel.
Bila memang diperlukan, obyek panel juga dapat diletakkan ke dalam obyek panel yang lain. Panel yang sudah berisi komponen Java kemudian diletakkan ke dalam content pane dari frame. Anda perlu menentukan layout manager content pane untuk mengatur penempatan panel sesuai keinginan.