Thursday 7 November 2013

JToggleButton Example in Java for Beginners

This exhaustive example illustrates JToggleButton in Swing. This example covers all core methods of the javax.swing.JToggleButton class. The program looks lengthy but it's easy if you go through.

import javax.swing.*;

import java.awt.*;

import javax.swing.text.*;

class JToggleButtonExample extends JFrame

{

JToggleButton t1,t2,t3,t4,t5,t6,t7,t8;

ImageIcon i1,i2,i3,i4,i5,i6,i7;



    public JToggleButtonExample()

    {

        // Create and show the GUI

        createAndShowGUI();

    }

  

    private void createAndShowGUI()

    {

        // Set frame properties

        setTitle("JToggleButton Demo");

        setLayout(new FlowLayout());

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       

        // Create some image icons

        i1=new ImageIcon("camera.png");

        i2=new ImageIcon("music.png");

        i3=new ImageIcon("safari.png");

        i4=new ImageIcon("message.png");

        i5=new ImageIcon("music1.png");

        i6=new ImageIcon("music2.png");

        i7=new ImageIcon("music3.png");

       

       

        // Created using

        // default constructor

        // Comes with no text, icon

        // and is not selected

        t1=new JToggleButton();

       

        // Created using

        // Second constructor

        // Takes javax.swing.Action

        // object

        t2=new JToggleButton(new DefaultEditorKit.BeepAction());

       

        // Third constructor

        // Takes javax.swing.Icon

        t3=new JToggleButton(i1);

       

        // Fourth constructor

        // takes icon and boolean

        // representing whether the

        // toggle button should be

        // selected

        // This icon acts as every icon

        // i.e. it is the same on rollover,

        // selected and rollover selected

        t4=new JToggleButton(i2,true);

       

        // Fifth constructor

        // takes String text on toggle button

        t5=new JToggleButton("Toggle Button 5");

       

        // Sixth constructor

        // takes String text with boolean selected

        t6=new JToggleButton("Toggle Button 6",true);

       

        // Seventh constructor

        // Takes String text with icon

        t7=new JToggleButton("Toggle Button 7",i3);

       

        // Eighth constructor

        // Takes String text with icon and

        // boolean selected

        t8=new JToggleButton("Toggle Button 8",i4,true);

               

        // Set some background

        t1.setBackground(Color.LIGHT_GRAY);

       

        // Set some foreground

        t1.setForeground(Color.BLACK);

                       

        // Set some action command

        t1.setActionCommand("JToggleButton t1");

       

        // Set some text to t1,t2

        t1.setText("Toggle Button 1");

        t2.setText("Toggle Button 2");

       

        // Set some cursor for t2

        t2.setCursor(new Cursor(Cursor.HAND_CURSOR));

       

        // Set roll over icon for t4

        t4.setRolloverIcon(i5);

       

        // Set content area filled false

        // Just see the effect

        t4.setContentAreaFilled(false);

       

        // Remove the border around t4

        t4.setBorderPainted(false);

       

        // Remove the thin line around

        // the icon (here)

        // This line is a focus indication.

        // Remove that indication.

        t4.setFocusPainted(false);

       

        // Set some roll over selected icon

        // This icon comes when the toggle button

        // is selected and then mouse is hovered on it

        t4.setRolloverSelectedIcon(i6);

       

        // Now set some custom selected icon

        t4.setSelectedIcon(i7);



        // Set roll over disabled for t3

        // When roll over is disabled

        // the roll over icon is never seen

        t3.setRolloverEnabled(false);

       

        // Disable t8

        t8.setEnabled(false);

       

        // Set disabled selected icon

        // This icon appears when the

        // JFrame is opened, because

        // t8 is selected by this time

        t8.setDisabledSelectedIcon(i6);

       

        // Now set disabled icon

        // The icon cannot be seen

        // because once after the

        // toggle button is disabled

        // selection cannot be changed

        // i.e. all the events are blocked

        // they are not generated

        t8.setDisabledIcon(i6);

       

        // Set icon text gap

        // The default gap between

        // icon and text is 4

        t7.setIconTextGap(10);

       

        // This sets the position of text

        // TOP/BOTTOM/CENTER

        // This is with respect to the icon

        // SwingConstants.TOP=1;

        // SwingConstants.BOTTOM=3;

        // SwingConstants.CENTER=0;

        // Default value is 0 (CENTER)

        t7.setVerticalTextPosition(3);

       

        // Set horizontal text position

        // RIGHT/LEFT/CENTER/LEADING/TRAILING

        // TRALIING is the default

        t7.setHorizontalTextPosition(SwingConstants.CENTER);

       

        // When focus, border painted,

        // content area filled is set to false

        // then t7 looks pretty much like a desktop icon!

        t7.setFocusPainted(false);

        t7.setBorderPainted(false);

        t7.setContentAreaFilled(false);

       

        // Print whether t4 is selected

        System.out.println("t4 is selected? "+t4.isSelected());

       

        // Print focus painted, border painted, content

        // area filled

        System.out.println("Focus painted for t4? "+t4.isFocusPainted());

        System.out.println("Border painted for t4? "+t4.isBorderPainted());

        System.out.println("Content area filled for t4? "+t4.isContentAreaFilled());

               

        // Add all JToggleButtons

        add(t1);

        add(t2);

        add(t3);

        add(t4);

        add(t5);

        add(t6);

        add(t7);

        add(t8);

       

        setSize(700,550);

        setVisible(true);

    }

  

    public static void main(String args[])

    {

        SwingUtilities.invokeLater(new Runnable(){

            public void run()

            {

                new JToggleButtonExample();

            }

        });

    }

}

Also see how to add ChangeListener for JToggleButton

Screenshot of JToggleButton Example

No comments:

Post a Comment