Banner Java

Menggunakan Kelas JPanel Di Java

Meletakkan beberapa komponen Java yang berlainan jenis ke dalam content pane sesuai dengan susunan yang diinginkan tentu menjadi hal yang rumit. Anda tidak serta merta hanya mengandalkan pada layout manager yang memiliki keterbatasan. Untuk mengatasi hal-hal yang demikian, Anda dapat menggunakan obyek panel dari kelas JPanel.

Panel berfungsi sebagai container component (komponen wadah) dimana komponen grafis lain diletakkan. Anda juga dapat meletakkan panel di dalam panel yang lain. Sebagaimana telah disinggung sebelumnya, layout manager standar dari kelas JPanel adalah FlowLayout. Anda dapat merubah layout manager standar ini sesuai kebutuhan. Selain sebagai komponen wadah, panel juga digunakan sebagai kanvas dimana Anda dapat menggambar obyek berdimensi dua atau berdimensi tiga seperti bujur sangkar, lingkaran, persegi panjang dan sebagainya.

JPanel termasuk dalam lightweight container yang ditulis secara lengkap dalam Java dan tidak tergantung panda platform berbeda. Adapun hirarki turunan dari kelas JPanel adalah sebagai berikut:

Hirarki kelas JPanel

JPanel mempunyai empat buah konstruktor untuk mengkonstruksi obyek secara berbeda. Dua diantaranya yang sering digunakan untuk mengkonstruksi obyek adalah sebagai berikut:

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.

Program berikut ini mendemonstrasikan cara bagaimana membuat user interface dengan meletakkan komponen sesuai dengan yang diharapkan. Contoh program menggunakan panel untuk membantu penyusunan komponen agar mendapatkan hasil sesuai dengan yang diharapkan.

// 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 tampilan user interface sesuai keinginan, dapat digunakan panel sebagai komponen wadah pembantu. Anda terlebih dahulu menentukan layout manager dari panel sesuai kebutuhan sebelum meletakkan komponen di dalamnya. Komponen dapat diletakkan dan disusun terlebih dahulu di dalam panel. Apabila diperlukan, panel juga dapat diletakkan di dalam panel yang lain. Panel yang telah berisi komponen kemudian diletakkan di content pane dari frame. Anda perlu menentukan layout manager dari content pane untuk dapat mengatur penempatan panel sesuai dengan keinginan.

Menggunakan kelas JPanel

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.