Bila Anda terbiasa dengan program aplikasi, mungkin sudah tidak asing dengan tombol radio (radio button). Tombol radio ini umumnya juga ada di antarmuka program aplikasi. Sebagaimana bahasa pemrograman lain, Java juga menyediakan kelas grafis untuk menghasilkan obyek tombol radio yaitu kelas JRadioButton. Di artikel Mengenal Kelas JRadioButton Di Java, Anda diperkenalkan pada kelas JRadioButton dan konstruktor (constructors) yang dimilikinya.

Di artikel Contoh Program Java Kelas JCheckBox Mengubah Tampilan Teks Di Label, Anda dapat mempelajari program Java sederhana tentang mengatur tampilan teks di label menggunakan obyek check box kelas JCheckBox. Di artikel kali ini, Anda diberikan contoh program yang hampir serupa namun pengaturan tampilan warna teks pada label menggunakan tombol radio (radio button) kelas JRadioButton.

// Nama file : RadioButtonDemo.java
// Mendemonstrasikan penggunaan JRadioButton

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

// Deklarasi kelas
public class RadioButtonDemo extends JFrame implements ActionListener {

   private JPanel panel;
   private JLabel label;
   private JRadioButton black, red, green, blue, magenta, orange;

   public RadioButtonDemo() {

      Font font = new Font("Tahoma", Font.PLAIN, 20);
      label = new JLabel("Bahasa Java mudah dipelajari", JLabel.CENTER);
      label.setFont(font);
      getContentPane().setBackground(Color.WHITE);
      getContentPane().add(label, BorderLayout.CENTER);

      black = new JRadioButton("BLACK", true);
      red = new JRadioButton("RED");
      green = new JRadioButton("GREEN");
      blue = new JRadioButton("BLUE");
      magenta = new JRadioButton("MAGENTA");
      orange = new JRadioButton("ORANGE");
 
      // Meletakkan dan menyusun obyek radio button di panel
      panel = new JPanel();
      panel.setLayout(new GridLayout(2, 3));
      panel.add(black);
      panel.add(red);
      panel.add(green);
      panel.add(blue);
      panel.add(magenta);
      panel.add(orange);
      getContentPane().add(panel, BorderLayout.PAGE_END);

      // Mengelompokkan radio button
      ButtonGroup group = new ButtonGroup();
      group.add(black);
      group.add(red);
      group.add(green);
      group.add(blue);
      group.add(magenta);
      group.add(orange);
      
      // Meregistrasi listener
      black.addActionListener(this);
      red.addActionListener(this);      
      green.addActionListener(this);
      blue.addActionListener(this);
      magenta.addActionListener(this);
      orange.addActionListener(this);
   }

   // Deklarasi metoda actionPerformed
   public void actionPerformed(ActionEvent ae) {

      if (ae.getSource() == black)
         label.setForeground(Color.BLACK);

      if (ae.getSource() == red)
         label.setForeground(Color.RED);

      if (ae.getSource() == green)
         label.setForeground(Color.GREEN);

      if (ae.getSource() == blue)
         label.setForeground(Color.BLUE);

      if (ae.getSource() == magenta)
         label.setForeground(Color.MAGENTA);

      if (ae.getSource() == orange)
         label.setForeground(Color.ORANGE);
   }

   // Metoda main
   public static void main(String[] args) {

      RadioButtonDemo frame = new RadioButtonDemo();
      frame.setTitle("Kelas RadioButtonDemo");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(320, 170);
      frame.setVisible(true);
   }
}
Contoh program kelas JRadioButton di bahasa pemrograman Java

Tombol radio dapat memicu ActionEvent atau ItemEvent. Contoh program di atas menggunakan ActionEvent untuk merespon aksi pengguna aplikasi saat tombol radio button diklik (selected). Saat salah satu tombol radio button diklik, metoda actionPerformed di baris nomor 61 – 80 dieksekusi. Metoda ini mengubah warna teks labelkelas JLabel sesuai dengan warna yang diwakili tombol radio button yang diklik (dipilih).