Pin It

Di artikel Mengenal Kelas JLabel Di Java, Anda dapat mengenal lebih jauh tentang kelas JLabel di Java. Label digunakan untuk memberi keterangan lebih pada komponen Java. Dengan menggunakan metoda tertentu kelas JLabel, sebuah label dapat mengikat sebuah komponen Java yang lain. Metoda tersebut adalah setDisplayedMnemonic dan setLabelFor. Metoda setDisplayedMnemonic digunakan untuk memberi garis bawah sebuah karakter yang telah ditentukan di label, sedangkan metoda setLabelFor digunakan untuk mengikat label dengan komponen Java tertentu.

Ketika tombol Alt + karakter garis bawah pada label ditekan bersama, maka komponen tertentu akan menerima fokus. Untuk obyek kelas JTextField, kursor akan berada di dalam kotak teks, sedangkan untuk obyek kelas JButton, obyek button akan menerima fokus. Berikut ini adalah contoh program yang mendemonstrasikan bagaimana obyek label mengikat komponen lain seperti obyek kelas JTextField dan JButton yang berada di sampingnya.

// Nama file : LabelKomponen.java
// Mengikat label dengan komponen Java lainnya

// Mengimpor kelas
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;

// Deklarasi kelas
public class LabelKomponen extends JFrame {

   private JTextField txtSatu, txtDua;
   private JButton jbtRubah, jbtSimpan;
   private JPanel panel1, panel2;
   private JLabel lblSatu, lblDua, lblRubah, lblSimpan;

   public LabelKomponen() {

      lblSatu = new JLabel("Text Pertama");
      lblSatu.setDisplayedMnemonic(KeyEvent.VK_P);
      lblDua = new JLabel("Text Kedua");
      lblDua.setDisplayedMnemonic(KeyEvent.VK_K);
      lblRubah = new JLabel("Tombol Rubah");
      lblRubah.setDisplayedMnemonic(KeyEvent.VK_R);
      lblSimpan = new JLabel("Tombol Simpan");
      lblSimpan.setDisplayedMnemonic(KeyEvent.VK_S);

      panel1 = new JPanel();
      panel1.setBackground(Color.WHITE);
      panel1.setLayout(new GridLayout(4, 1));
      panel1.add(lblSatu);
      panel1.add(lblDua);
      panel1.add(lblRubah);
      panel1.add(lblSimpan);

      txtSatu = new JTextField(10);
      lblSatu.setLabelFor(txtSatu);
      txtDua = new JTextField(12);
      lblDua.setLabelFor(txtDua);
      jbtRubah = new JButton("Rubah");
      lblRubah.setLabelFor(jbtRubah);
      jbtSimpan = new JButton("Simpan");
      lblSimpan.setLabelFor(jbtSimpan);

      panel2 = new JPanel();
      panel2.setLayout(new GridLayout(4, 1));
      panel2.setBackground(Color.WHITE);
      panel2.add(txtSatu);
      panel2.add(txtDua);
      panel2.add(jbtRubah);
      panel2.add(jbtSimpan);

      getContentPane().setLayout(new BorderLayout(7, 0));
      getContentPane().setBackground(Color.WHITE);
      getContentPane().add(panel1, BorderLayout.LINE_START);      
      getContentPane().add(panel2, BorderLayout.CENTER);
   }

   // Metoda main
   public static void main(String[] args) {
      LabelKomponen frame = new LabelKomponen();
      frame.setTitle("Kelas LabelKomponen");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(270, 130);
      frame.setVisible(true);
   }
}

Pada saat tombol Alt dan salah satu karakter yang diberi garis bawah (underline) pada label ditekan secara bersama-sama (serentak), maka sebuah komponen yang diikat oleh label menggunakan metoda setLabelFor akan menerima fokus. Sebagai contoh, apabila Anda menekan tombol Alt + P, kursor akan berada di kotak teks pertama (kotak teks pertama menerima fokus), apabila menekan tombol Alt + R, maka tombol dengan label “Rubah” akan menerima fokus ditandai dengan bentuk persegi panjang remang-remang yang mengelilingi label tombol tersebut.

Mengikat label ke komponen Java lainnya