Java Button Class Example

JBUTTON

Java Swing Tutorial Explaining the JButton Component. The abstract class AbstractButton extends class JComponent and provides a foundation for a family of button classes, including JButton. A button is a component the user clicks to trigger a specific action.
There are several types of buttons in Java, all are subclasses of AbstractButton.
  • command buttons: is created with class JButton. It generates ActionEvent.
  • toggle buttons: have on/off or true/false values.
  • check boxes: a group of buttons. It generates ItemEvent.
  • radio buttons: a group of buttons in which only one can be selected. It generates ItemEvent.

JBUTTON SOURCE CODE

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.net.URL;
import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JButtonDemo extends JPanel implements ActionListener {

 protected static JButton jbnLeft, jbnMiddle, jbnRight;
 public JButtonDemo() {
  // Create Icons that can be used with the jButtons
  ImageIcon leftButtonIcon = createImageIcon("rightarrow.JPG");
  ImageIcon middleButtonIcon = createImageIcon("java-swing-tutorial.JPG");
  ImageIcon rightButtonIcon = createImageIcon("leftarrow.JPG");
  jbnLeft = new JButton("Disable centre button", leftButtonIcon);
  jbnLeft.setVerticalTextPosition(AbstractButton.CENTER);
  jbnLeft.setHorizontalTextPosition(AbstractButton.LEADING);
  jbnLeft.setMnemonic(KeyEvent.VK_D);
  // Alt-D clicks the button
  jbnLeft.setActionCommand("disable");
  jbnLeft.setToolTipText("disable the Centre button."); // Adding Tool
         // tips
  jbnMiddle = new JButton("Centre button", middleButtonIcon);
  jbnMiddle.setVerticalTextPosition(AbstractButton.BOTTOM);
  jbnMiddle.setHorizontalTextPosition(AbstractButton.CENTER);
  jbnMiddle.setMnemonic(KeyEvent.VK_M);
  // Alt-M clicks the button
  jbnMiddle.setToolTipText("Centre button");
  jbnRight = new JButton("Enable centre button", rightButtonIcon);
  // Use the default text position of CENTER, TRAILING (RIGHT).
  jbnRight.setMnemonic(KeyEvent.VK_E);
  // Alt-E clicks the button
  jbnRight.setActionCommand("enable");
  jbnRight.setEnabled(false);
  // Disable the Button at creation time
  // Listen for actions on Left and Roght Buttons
  jbnLeft.addActionListener(this);
  jbnRight.addActionListener(this);
  jbnRight.setToolTipText("Enable the Centre button.");
  // Add Components to the frame, using the default FlowLayout.
  add(jbnLeft);
  add(jbnMiddle);
  add(jbnRight);
 }
 public void actionPerformed(ActionEvent e) {
  if ("disable".equals(e.getActionCommand())) {
   jbnMiddle.setEnabled(false);
   jbnLeft.setEnabled(false);
   jbnRight.setEnabled(true);
  } else {
   jbnMiddle.setEnabled(true);
   jbnLeft.setEnabled(true);
   jbnRight.setEnabled(false);
  }
 }
 // Returns an ImageIcon, or null if the path was invalid.
 protected static ImageIcon createImageIcon(String path) {
  URL imgURL = JButtonDemo.class.getResource(path);
  if (imgURL != null) {
   return new ImageIcon(imgURL);
  } else {
   System.err.println("Couldn't find image in system: " + path);
   return null;
  }
 }
 // Create the GUI and show it.
 private static void createGUI() {
  JFrame.setDefaultLookAndFeelDecorated(true);
  // Create and set up the frame.
  JFrame frame = new JFrame("jButton usage demo");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  // Create and set up the content pane.
  JButtonDemo buttonContentPane = new JButtonDemo();
  buttonContentPane.setOpaque(true); // content panes must be opaque
  frame.getRootPane().setDefaultButton(jbnLeft);
  frame.setContentPane(buttonContentPane);
  // Display the window.
  frame.pack();
  frame.setVisible(true);
 }
 public static void main(String[] args) {
  javax.swing.SwingUtilities.invokeLater(new Runnable() {

   public void run() {
    createGUI();
   }
  });
 }
}
Output
Download jButton Source Code

ANOTHER EXAMPLE: JBUTTON SOURCE CODE

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JButtonDemo2 {

 JFrame jtfMainFrame;
 JButton jbnButton1, jbnButton2;
 JTextField jtfInput;
 JPanel jplPanel;
 public JButtonDemo2() {
  jtfMainFrame = new JFrame("Which Button Demo");
  jtfMainFrame.setSize(50, 50);
  jbnButton1 = new JButton("Button 1");
  jbnButton2 = new JButton("Button 2");
  jtfInput = new JTextField(20);
  jplPanel = new JPanel();
  jbnButton1.setMnemonic(KeyEvent.VK_I); //Set ShortCut Keys
  jbnButton1.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {
    jtfInput.setText("Button 1!");
   }
  });
  jbnButton2.setMnemonic(KeyEvent.VK_I);
  jbnButton2.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {
    jtfInput.setText("Button 2!");
   }
  });
  jplPanel.setLayout(new FlowLayout());
  jplPanel.add(jtfInput);
  jplPanel.add(jbnButton1);
  jplPanel.add(jbnButton2);
  jtfMainFrame.getContentPane().add(jplPanel, BorderLayout.CENTER);
  jtfMainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  jtfMainFrame.pack();
  jtfMainFrame.setVisible(true);
 }
 public static void main(String[] args) {
  // Set the look and feel to Java Swing Look
  try {
   UIManager.setLookAndFeel(UIManager
     .getCrossPlatformLookAndFeelClassName());
  } catch (Exception e) {
  }
  JButtonDemo2 application = new JButtonDemo2();
 }
}
Output
Download jButton Source Code

JAVA JBUTTON HIERARCHY

javax.swing
Class JButton 
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.AbstractButton
javax.swing.JButton
All Implemented Interfaces: 
Accessible, ImageObserver, ItemSelectable, MenuContainer, Serializable, SwingConstants
Direct Known Subclasses:
BasicArrowButton, MetalComboBoxButton

JBUTTON CONSTRUCTOR

JButton()
Creates a button with no set text or icon.
JButton(Action a)
Creates a button where properties are taken from the Action supplied.
JButton(Icon icon)
Creates a button with an icon.
JButton(String text)
Creates a button with text.
JButton(String text, Icon icon)
Creates a button with initial text and an icon.

No comments:

Post a Comment