Wednesday, January 28, 2015

Set focus on second JTextField in a JDialog

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

public class TestFocus extends JFrame
    {
     JButton button; public TestFocus()
         {
         JPanel panel = new JPanel();
         setContentPane( panel );
         panel.add( new JTextField( "Focus is on Click Me button", 20 ) );
         button = new JButton( "Click Me" );
         button.addActionListener( new ActionListener()
             {
             public void actionPerformed(ActionEvent e)
                 {
                 JDialog dialog = new JDialog1();
             }
         });
         panel.add( button );
         // Listen for windowOpened event to set focus
         addWindowListener( new WindowAdapter()
             {
             public void windowOpened( WindowEvent e )
                 {
                 button.requestFocus();
             }
         });
     }
     public static void main(String[] args)
         {
         TestFocus frame = new TestFocus();
         frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
         frame.pack();
         frame.setVisible(true);
         // frame.button.requestFocus();
     }
     class JDialog1 extends JDialog
         {
         public JDialog1()
             {
             JPanel panel = new JPanel();
             setContentPane( panel);
             panel.add( new JTextField( "Focus is on next Text Field", 20) );
             final JTextField tf1 = new JTextField(9);
             panel.add( tf1 );
             pack();
             // Use invokeLater AFTER the dialog is shown
             setVisible( true );
             SwingUtilities.invokeLater( new Runnable()
                 {
                 public void run()
                     {
                     tf1.requestFocus();
                 }
             });
         }
     }
}

Select colors from JList

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

public class SelectColors extends JFrame
     {
     private JList colorList;
     private Container c;
 
     private String colorNames[] =
         { "Black", "Blue", "Cyan", "Dark Gray", "Gray", "Green",
         "Light Gray", "Magenta", "Orange", "Pink", "Red",
     "White", "Yellow" };
 
     private Color colors[] =
         { Color.black, Color.blue, Color.cyan, Color.darkGray,
         Color.gray, Color.green, Color.lightGray,
         Color.magenta, Color.orange, Color.pink, Color.red,
     Color.white, Color.yellow };
 
     public SelectColors()
         {
         super( "List Test" );
     
         c = getContentPane();
         c.setLayout( new FlowLayout() );
     
         // create a list with the items in the colorNames array
         colorList = new JList( colorNames );
         colorList.setVisibleRowCount( 5 );
     
         // do not allow multiple selections
         colorList.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
     
         // add a JScrollPane containing the JList
         // to the content pane
         c.add( new JScrollPane( colorList ) );
     
         // set up event handler
         colorList.addListSelectionListener( new ListSelectionListener()
             {
             public void valueChanged( ListSelectionEvent e )
                 {
                 c.setBackground( colors[ colorList.getSelectedIndex() ] );
             }
         } );
     
         setSize( 350, 150 );
         show();
     }
 
     public static void main( String args[] )
         {
         SelectColors app = new SelectColors();
     
         app.addWindowListener( new WindowAdapter()
             {
             public void windowClosing( WindowEvent e )
                 {
                 System.exit( 0 );
             }
         } );
     }
}

Tuesday, January 27, 2015

Simple Jtree example

package com.ack.gui.swing.simple;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;

public class SimpleJTreeExample extends JFrame {

  public static void main( String[] argv ) {
    SimpleJTreeExample myExample = new SimpleJTreeExample( "Simple JTree Example" );
  }

  public SimpleJTreeExample( String title ) {
    super( title );
    setSize( 150, 150 );
    addWindowListener( new WindowAdapter() {
      public void windowClosing( WindowEvent we ) {
        dispose();
        System.exit( 0 );
      }
    } );
    init();
    pack();
    setVisible( true );
  }

  private void init() {
    DefaultMutableTreeNode root = new DefaultMutableTreeNode( "Calendar" );
    DefaultMutableTreeNode months = new DefaultMutableTreeNode( "Months" );
    root.add( months );
    String monthLabels[] = {"January", "February", "March", "April", "May",
                            "June", "July", "August", "September", "October", "November", "December"};
    for( int i = 0; i < monthLabels.length; i++ )
      months.add( new DefaultMutableTreeNode( monthLabels[i] ) );
    DefaultMutableTreeNode weeks = new DefaultMutableTreeNode( "Weeks" );
    root.add( weeks );
    String weekLabels[] = {"Monday", "Tuesday", "Wednesday", "Thursday",
                           "Friday", "Saturday", "Sunday"};
    for( int i = 0; i < weekLabels.length; i++ )
      weeks.add( new DefaultMutableTreeNode( weekLabels[i] ) );
    JScrollPane js = new JScrollPane( new JTree( root ) );
    getContentPane().add( js );
  }
}

Simple swing buttons

package com.ack.gui.swing.simple;

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

public class SimpleSwingButtons extends JFrame {
  public static void main( String[] argv ) {
    SimpleSwingButtons myExample = new SimpleSwingButtons( "Simple Swing Buttons" );
  }

  public SimpleSwingButtons( String title ) {
    super( title );
    setSize( 150, 150 );
    addWindowListener( new WindowAdapter() {
      public void windowClosing( WindowEvent we ) {
        dispose();
        System.exit( 0 );
      }
    } );
    init();
    setVisible( true );
  }

  private void init() {
    JPanel my_panel = new JPanel();
    my_panel.setLayout( new GridLayout( 3, 3 ) );
    for( int i = 1; i < 10; i++ ) {
      ImageIcon icon = new ImageIcon( i + ".gif" );
      JButton jb = new JButton( icon );
      jb.setToolTipText( i + ".gif" );
      my_panel.add( jb );
    }
    getContentPane().add( my_panel );
    my_panel.setBorder( BorderFactory.createEtchedBorder() );
  }
}

Sunday, January 18, 2015

Using JEditorPane as a browser

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

    public class FileChooserDemo extends JFrame {
     static private final String newline = "\n";
   
         public FileChooserDemo() {
         super("FileChooserDemo");
       
         //Create the log first, because the action listeners
         //need to refer to it.
         final JTextArea log = new JTextArea(5,20);
         log.setMargin(new Insets(5,5,5,5));
         log.setEditable(false);
         JScrollPane logScrollPane = new JScrollPane(log);
       
         //Create a file chooser
         final JFileChooser fc = new JFileChooser();
       
         //Create the open button
         ImageIcon openIcon = new ImageIcon("images/open.gif");
         JButton openButton = new JButton("Open a File...", openIcon);
             openButton.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                 int returnVal = fc.showOpenDialog(FileChooserDemo.this);
               
                     if (returnVal == JFileChooser.APPROVE_OPTION) {
                     File file = fc.getSelectedFile();
                     //this is where a real application would open the file.
                     log.append("Opening: " + file.getName() + "." + newline);
                     } else {
                     log.append("Open command cancelled by user." + newline);
                 }
             }
         });
       
         //Create the save button
         ImageIcon saveIcon = new ImageIcon("save.gif");
         JButton saveButton = new JButton("Save a File...", saveIcon);
             saveButton.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                 int returnVal = fc.showSaveDialog(FileChooserDemo.this);
               
                     if (returnVal == JFileChooser.APPROVE_OPTION) {
                     File file = fc.getSelectedFile();
                     //this is where a real application would save the file.
                     log.append("Saving: " + file.getName() + "." + newline);
                     } else {
                     log.append("Save cancelled by user." + newline);
                 }
             }
         });
       
         JPanel buttonPanel = new JPanel();
         buttonPanel.add(openButton);
         buttonPanel.add(saveButton);
         openButton.setNextFocusableComponent(saveButton);
         saveButton.setNextFocusableComponent(openButton);
         Container contentPane = getContentPane();
         contentPane.add(buttonPanel, BorderLayout.NORTH);
         contentPane.add(logScrollPane, BorderLayout.CENTER);
     }
   
         public static void main(String[] args) {
         JFrame frame = new FileChooserDemo();
       
             frame.addWindowListener(new WindowAdapter() {
                 public void windowClosing(WindowEvent e) {
                 System.exit(0);
             }
         });
       
         frame.pack();
         frame.setVisible(true);
     }
}

Using ImageIcons in place of JCheckBox

public class test extends JFrame implements ActionListener
    {
     JCheckBox check;
     public test()
         {
         check = new JCheckBox("Test");
         check.setIcon(new ImageIcon("one.gif")); //unselected
         check.setSelectedIcon(new ImageIcon("two.gif")); //selected
         check.addActionListener(new ActionListener()
             {
             public void actionPerformed(ActionEvent ae)
                 {
                 System.out.println("check box state"+check.getState());
             }
         });
       
         getContentPane().add(check);
     }
     public static void main(String args[])
         {
         test tes = new test();
         tes.setSize(200,200);
         tes.setVisible(true);
         tes.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
     }
}

Saturday, January 17, 2015

Working with LookAndFeel

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

public class LookAndFeelDemo extends JFrame
     {
     private String strings[] = { "Metal", "Motif", "Windows" };
     private UIManager.LookAndFeelInfo looks[];
     private JRadioButton radio[];
     private ButtonGroup group;
     private JButton button;
     private JLabel label;
     private JComboBox comboBox;
   
     public LookAndFeelDemo()
         {
         super( "Look and Feel Demo" );
       
         Container c = getContentPane();
       
         JPanel northPanel = new JPanel();
         northPanel.setLayout( new GridLayout( 3, 1, 0, 5 ) );
         label = new JLabel( "This is a Metal look-and-feel", SwingConstants.CENTER );
         northPanel.add( label );
         button = new JButton( "JButton" );
         northPanel.add( button );
         comboBox = new JComboBox( strings );
         northPanel.add( comboBox );
       
         c.add( northPanel, BorderLayout.NORTH );
       
         JPanel southPanel = new JPanel();
         radio = new JRadioButton[ strings.length ];
         group = new ButtonGroup();
         ItemHandler handler = new ItemHandler();
         southPanel.setLayout( new GridLayout( 1, radio.length ) );
       
         for ( int i = 0; i < radio.length; i++ )
             {
             radio[ i ] = new JRadioButton( strings[ i ] );
             radio[ i ].addItemListener( handler );
             group.add( radio[ i ] );
             southPanel.add( radio[ i ] );
         }
       
         c.add( southPanel, BorderLayout.SOUTH );
       
         // get the installed look-and-feel information
         looks = UIManager.getInstalledLookAndFeels();
       
         setSize( 300, 200 );
         show();
       
         radio[ 0 ].setSelected( true );
     }
   
     private void changeTheLookAndFeel( int value )
         {
         try
             {
             UIManager.setLookAndFeel( looks[ value ].getClassName() );
             SwingUtilities.updateComponentTreeUI( this );
         }
         catch ( Exception e )
             {
             e.printStackTrace();
         }
     }
   
     public static void main( String args[] )
         {
         LookAndFeelDemo dx = new LookAndFeelDemo();
       
         dx.addWindowListener( new WindowAdapter()
             {
             public void windowClosing( WindowEvent e )
                 {
                 System.exit( 0 );
             }
         } );
     }
   
     private class ItemHandler implements ItemListener
         {
         public void itemStateChanged( ItemEvent e )
             {
             for ( int i = 0; i < radio.length; i++ )
             if ( radio[ i ].isSelected() )
                 {
                 label.setText( "This is a " + strings[ i ] + " look-and-feel" );
                 comboBox.setSelectedIndex( i );
                 changeTheLookAndFeel( i );
             }
         }
     }
}

Using layout managers

package com.ack.gui.swing.simple;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.*;

public class UsingLayoutManagers extends JFrame {
  public UsingLayoutManagers() {
    super( "Common Layout Managers" );
    setSize( 500, 380 );

    JDesktopPane desktop = new JDesktopPane();
    getContentPane().add( desktop );

    JInternalFrame fr1 = new JInternalFrame( "FlowLayout", true, true );
    fr1.setBounds( 10, 10, 150, 150 );
    Container c = fr1.getContentPane();
    c.setLayout( new FlowLayout() );
    c.add( new JButton( "1" ) );
    c.add( new JButton( "2" ) );
    c.add( new JButton( "3" ) );
    c.add( new JButton( "4" ) );
    desktop.add( fr1, 0 );

    JInternalFrame fr2 = new JInternalFrame( "GridLayout", true, true );
    fr2.setBounds( 170, 10, 150, 150 );
    c = fr2.getContentPane();
    c.setLayout( new GridLayout( 2, 2 ) );
    c.add( new JButton( "1" ) );
    c.add( new JButton( "2" ) );
    c.add( new JButton( "3" ) );
    c.add( new JButton( "4" ) );
    desktop.add( fr2, 0 );

    JInternalFrame fr3 = new JInternalFrame( "BorderLayout", true, true );
    fr3.setBounds( 330, 10, 150, 150 );
    c = fr3.getContentPane();
    c.add( new JButton( "1" ), BorderLayout.NORTH );
    c.add( new JButton( "2" ), BorderLayout.EAST );
    c.add( new JButton( "3" ), BorderLayout.SOUTH );
    c.add( new JButton( "4" ), BorderLayout.WEST );
    desktop.add( fr3, 0 );

    JInternalFrame fr4 = new JInternalFrame( "BoxLayout - X", true, true );
    fr4.setBounds( 10, 170, 250, 120 );
    c = fr4.getContentPane();
    c.setLayout( new BoxLayout( c, BoxLayout.X_AXIS ) );
    c.add( new JButton( "1" ) );
    c.add( Box.createHorizontalStrut( 12 ) );
    c.add( new JButton( "2" ) );
    c.add( Box.createGlue() );
    c.add( new JButton( "3" ) );
    c.add( Box.createHorizontalGlue() );
    c.add( new JButton( "4" ) );
    desktop.add( fr4, 0 );

    JInternalFrame fr5 = new JInternalFrame( "BoxLayout - Y", true, true );
    fr5.setBounds( 330, 170, 150, 180 );
    c = fr5.getContentPane();
    c.setLayout( new BoxLayout( c, BoxLayout.Y_AXIS ) );
    c.add( new JButton( "1" ) );
    c.add( Box.createVerticalStrut( 10 ) );
    c.add( new JButton( "2" ) );
    c.add( Box.createGlue() );
    c.add( new JButton( "3" ) );
    c.add( Box.createVerticalGlue() );
    c.add( new JButton( "4" ) );
    desktop.add( fr5, 0 );

    try {
      fr1.setSelected( true );
    }
    catch( java.beans.PropertyVetoException ex ) {
    }

    WindowListener wndCloser = new WindowAdapter() {
      public void windowClosing( WindowEvent e ) {
        System.exit( 0 );
      }
    };
    addWindowListener( wndCloser );
    fr1.show();
    fr2.show();
    fr3.show();
    fr4.show();
    fr5.show();
    setVisible( true );
  }

  public static void main( String argv[] ) {
    new UsingLayoutManagers();
  }
}

Friday, January 16, 2015

Using JToolBar

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

    public class ToolBarDemo2 extends JFrame {
     protected JTextArea textArea;
     protected String newline = "\n";
 
         public ToolBarDemo2() {
         //Do frame stuff.
         super("ToolBarDemo2");
             addWindowListener(new WindowAdapter() {
                 public void windowClosing(WindowEvent e) {
                 System.exit(0);
             }
         });
     
         JToolBar toolBar = new JToolBar();
         toolBar.setFloatable(false);
         addButtons(toolBar);
         textArea = new JTextArea(5, 30);
         JScrollPane scrollPane = new JScrollPane(textArea);
     
         //Lay out the content pane.
         JPanel contentPane = new JPanel();
         contentPane.setLayout(new BorderLayout());
         contentPane.setPreferredSize(new Dimension(400, 100));
         contentPane.add(toolBar, BorderLayout.NORTH);
         contentPane.add(scrollPane, BorderLayout.CENTER);
         setContentPane(contentPane);
     }
 
         protected void addButtons(JToolBar toolBar) {
         JButton button = null;
     
         button = new JButton(new ImageIcon("images/left.gif"));
         button.setToolTipText("This is the left button");
             button.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                 displayResult("Action for first button");
             }
         });
         toolBar.add(button);
     
         button = new JButton(new ImageIcon("images/middle.gif"));
         button.setToolTipText("This is the middle button");
             button.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                 displayResult("Action for second button");
             }
         });
         toolBar.add(button);
     
         button = new JButton(new ImageIcon("images/right.gif"));
         button.setToolTipText("This is the right button");
             button.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                 displayResult("Action for third button");
             }
         });
         toolBar.add(button);
     
         toolBar.addSeparator();
     
         button = new JButton("Another button");
             button.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                 displayResult("Action for fourth button");
             }
         });
         toolBar.add(button);
     
         JTextField textField = new JTextField("A text field");
         toolBar.add(textField);
     }
 
         protected void displayResult(String actionDescription) {
         textArea.append(actionDescription + newline);
     }
 
         public static void main(String[] args) {
         ToolBarDemo2 frame = new ToolBarDemo2();
         frame.pack();
         frame.setVisible(true);
     }
}

Using JTree

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

public class TreeConstruct1 extends JFrame
    {
     public static void main(String[] args)
         {
         TreeConstruct obj=new TreeConstruct();
         obj.setSize(350,500);
         obj.setVisible(true);
     }
     public TreeConstruct1()
         {
         try
             {
             UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
         }
         catch(Exception exception)
             {
             exception.printStackTrace();
         }
         JPanel panel =new JPanel();
         panel.setLayout(new FlowLayout(FlowLayout.LEFT));
         DefaultMutableTreeNode top=new DefaultMutableTreeNode("Library");
     
         DefaultMutableTreeNode branch1=new DefaultMutableTreeNode("Comics");
         DefaultMutableTreeNode branch2=new DefaultMutableTreeNode("History");
         DefaultMutableTreeNode branch3=new DefaultMutableTreeNode("Scientific");
     
        //adding to the topmost node
         top.add(branch1);
         top.add(branch2);
         top.add(branch3);
     
        //adding to the First branch
         DefaultMutableTreeNode node1_b1=new DefaultMutableTreeNode("Tom and Jerry");
     
         DefaultMutableTreeNode node2_b1=new DefaultMutableTreeNode("Simpsons");
         branch1.add(node1_b1);
         branch1.add(node2_b1);
     
        //adding to the Second branch
         DefaultMutableTreeNode node1_b2=new DefaultMutableTreeNode("The Great History of Aruna Kumar Reddy");
         DefaultMutableTreeNode node2_b2=new DefaultMutableTreeNode("Chanakya");
         DefaultMutableTreeNode node3_b2=new DefaultMutableTreeNode("Changhiz Khan");
         branch2.add(node1_b2);
         branch2.add(node2_b2);
         branch2.add(node3_b2);
     
        //adding to the Third branch
         DefaultMutableTreeNode node1_b3=new DefaultMutableTreeNode("Physical");
         DefaultMutableTreeNode node2_b3=new DefaultMutableTreeNode("Biological");
     
         DefaultMutableTreeNode n1_node2_b3=new DefaultMutableTreeNode("Animal Science");
         DefaultMutableTreeNode n2_node2_b3=new DefaultMutableTreeNode("Plant Science");
         node2_b3.add(n1_node2_b3);
         node2_b3.add(n2_node2_b3);
     
         DefaultMutableTreeNode node3_b3=new DefaultMutableTreeNode("Chemical");
         branch3.add(node1_b3);
         branch3.add(node2_b3);
         branch3.add(node3_b3);
     
         ImageIcon icon=new ImageIcon("abook.gif");
         JTree tree=new JTree(top,true);
         tree.setToolTipText(" and ");
         panel.add(tree);
         getContentPane().add(panel);
     }
}

Thursday, January 15, 2015

Using JTextField and JPasswordField

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

public class TextFieldTest extends JFrame
     {
     private JTextField text1, text2, text3;
     private JPasswordField password;
   
     public TextFieldTest()
         {
         super( "Testing JTextField and JPasswordField" );
       
         Container c = getContentPane();
         c.setLayout( new FlowLayout() );
       
         // construct textfield with default sizing
         text1 = new JTextField( 10 );
         c.add( text1 );
       
         // construct textfield with default text
         text2 = new JTextField( "Enter text here" );
         c.add( text2 );
       
         // construct textfield with default text and
         // 20 visible elements and no event handler
         text3 = new JTextField( "Uneditable text field", 20 );
         text3.setEditable( false );
         c.add( text3 );
       
         // construct textfield with default text
         password = new JPasswordField( "Hidden text" );
         c.add( password );
       
         TextFieldHandler handler = new TextFieldHandler();
         text1.addActionListener( handler );
         text2.addActionListener( handler );
         text3.addActionListener( handler );
         password.addActionListener( handler );
       
         setSize( 325, 100 );
         show();
     }
   
     public static void main( String args[] )
         {
         TextFieldTest app = new TextFieldTest();
       
         app.addWindowListener( new WindowAdapter()
             {
             public void windowClosing( WindowEvent e )
                 {
                 System.exit( 0 );
             }
         } );
     }
   
     private class TextFieldHandler implements ActionListener
         {
         public void actionPerformed( ActionEvent e )
             {
             String s = "";
           
             if ( e.getSource() == text1 )
             s = "text1: " + e.getActionCommand();
             else if ( e.getSource() == text2 )
             s = "text2: " + e.getActionCommand();
             else if ( e.getSource() == text3 )
             s = "text3: " + e.getActionCommand();
             else if ( e.getSource() == password )
                 {
                 JPasswordField pwd = (JPasswordField) e.getSource();
                 s = "password: " + new String( pwd.getPassword() );
             }
           
             JOptionPane.showMessageDialog( null, s );
         }
     }
}

Using JTextArea

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

public class TextAreaDemo extends JFrame
     {
     private JTextArea t1, t2;
     private JButton copy;
   
     public TextAreaDemo()
         {
         super( "TextArea Demo" );
       
         Box b = Box.createHorizontalBox();
       
         String s = "This is a demo string to\n" +
         "illustrate copying text\n" +
         "from one TextArea to \n" +
         "another TextArea using an\n"+
         "external event\n";
       
         t1 = new JTextArea( s, 10, 15 );
         b.add( new JScrollPane( t1 ) );
       
         copy = new JButton( "Copy >>>" );
         copy.addActionListener( new ActionListener()
             {
             public void actionPerformed( ActionEvent e )
                 {
                 t2.setText( t1.getSelectedText() );
             }
         } );
         b.add( copy );
       
         t2 = new JTextArea( 10, 15 );
         t2.setEditable( false );
         b.add( new JScrollPane( t2 ) );
       
         Container c = getContentPane();
         c.add( b ); // Box placed in BorderLayout.CENTER
         setSize( 425, 200 );
         show();
     }
   
     public static void main( String args[] )
         {
         TextAreaDemo app = new TextAreaDemo();
       
         app.addWindowListener( new WindowAdapter()
             {
             public void windowClosing( WindowEvent e )
                 {
                 System.exit( 0 );
             }
         } );
     }
}

Wednesday, January 14, 2015

Using JRadioButton

// Creating radio buttons using ButtonGroup and JRadioButton.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class RadioButtonTest extends JFrame
     {
     private JTextField t;
     private Font plainFont, boldFont,
     italicFont, boldItalicFont;
     private JRadioButton plain, bold, italic, boldItalic;
     private ButtonGroup radioGroup;
 
     public RadioButtonTest()
         {
         super( "RadioButton Test" );
     
         Container c = getContentPane();
         c.setLayout( new FlowLayout() );
     
         t = new JTextField( "Watch the font style change", 25 );
         c.add( t );
     
         // Create radio buttons
         plain = new JRadioButton( "Plain", true );
         c.add( plain );
         bold = new JRadioButton( "Bold", false);
         c.add( bold );
         italic = new JRadioButton( "Italic", false );
         c.add( italic );
         boldItalic = new JRadioButton( "Bold/Italic", false );
         c.add( boldItalic );
     
         // register events
         RadioButtonHandler handler = new RadioButtonHandler();
         plain.addItemListener( handler );
         bold.addItemListener( handler );
         italic.addItemListener( handler );
         boldItalic.addItemListener( handler );
     
         // create logical relationship between JRadioButtons
         radioGroup = new ButtonGroup();
         radioGroup.add( plain );
         radioGroup.add( bold );
         radioGroup.add( italic );
         radioGroup.add( boldItalic );
     
         plainFont = new Font( "TimesRoman", Font.PLAIN, 14 );
         boldFont = new Font( "TimesRoman", Font.BOLD, 14 );
         italicFont = new Font( "TimesRoman", Font.ITALIC, 14 );
         boldItalicFont = new Font( "TimesRoman", Font.BOLD + Font.ITALIC, 14 );
         t.setFont( plainFont );
         setSize( 300, 100 );
         show();
     }
 
     public static void main( String args[] )
         {
         RadioButtonTest app = new RadioButtonTest();
     
         app.addWindowListener( new WindowAdapter()
             {
             public void windowClosing( WindowEvent e )
                 {
                 System.exit( 0 );
             }
         } );
     }
 
     private class RadioButtonHandler implements ItemListener
         {
         public void itemStateChanged( ItemEvent e )
             {
             if ( e.getSource() == plain )
             t.setFont( plainFont );
             else if ( e.getSource() == bold )
             t.setFont( boldFont );
             else if ( e.getSource() == italic )
             t.setFont( italicFont );
             else if ( e.getSource() == boldItalic )
             t.setFont( boldItalicFont );
         
             t.repaint();
         }
     }
}

Using JPopupMenu

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

public class PopupTest extends JFrame
     {
     private JRadioButtonMenuItem items[];
     private Color colorValues[] = { Color.blue, Color.yellow, Color.red };
 
     public PopupTest()
         {
         super( "Using JPopupMenus" );
     
         final JPopupMenu popupMenu = new JPopupMenu();
         ItemHandler handler = new ItemHandler();
         String colors[] = { "Blue", "Yellow", "Red" };
         ButtonGroup colorGroup = new ButtonGroup();
         items = new JRadioButtonMenuItem[ 3 ];
     
         // construct each menu item and add to popup menu; also
         // enable event handling for each menu item
         for ( int i = 0; i < items.length; i++ )
             {
             items[ i ] = new JRadioButtonMenuItem( colors[ i ] );
             popupMenu.add( items[ i ] );
             colorGroup.add( items[ i ] );
             items[ i ].addActionListener( handler );
         }
     
         getContentPane().setBackground( Color.white );
     
         // define a MouseListener for the window that displays
         // a JPopupMenu when the popup trigger event occurs
         addMouseListener( new MouseAdapter()
             {
             public void mousePressed( MouseEvent e )
                 {
                 checkForTriggerEvent( e );
             }
         
             public void mouseReleased( MouseEvent e )
                 {
                 checkForTriggerEvent( e );
             }
         
             private void checkForTriggerEvent( MouseEvent e )
                 {
                 if ( e.isPopupTrigger() )
                 popupMenu.show( e.getComponent(), e.getX(), e.getY() );
             }
         } );
     
         setSize( 300, 200 );
         show();
     }
 
     public static void main( String args[] )
         {
         PopupTest app = new PopupTest();
     
         app.addWindowListener( new WindowAdapter()
             {
             public void windowClosing( WindowEvent e )
                 {
                 System.exit( 0 );
             }
         });
     }
 
     private class ItemHandler implements ActionListener
         {
         public void actionPerformed( ActionEvent e )
             {
             // determine which menu item was selected
             for ( int i = 0; i < items.length; i++ )
             if ( e.getSource() == items[ i ] )
                 {
                 getContentPane().setBackground( colorValues[ i ] );
                 repaint();
                 return;
             }
         }
     }
}

Tuesday, January 13, 2015

Using JLabel

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

public class LabelTest extends JFrame
     {
     private JLabel label1, label2, label3;
 
     public LabelTest()
         {
         super( "Testing JLabel" );
     
         Container c = getContentPane();
         c.setLayout( new FlowLayout() );
     
         // JLabel constructor with a string argument
         label1 = new JLabel( "Label with text" );
         label1.setToolTipText( "This is label1" );
         c.add( label1 );
     
         // JLabel constructor with string, Icon and
         // alignment arguments
         Icon bug = new ImageIcon( "bug1.gif" );
         label2 = new JLabel( "Label with text and icon",
         bug, SwingConstants.LEFT );
         label2.setToolTipText( "This is label2" );
         c.add( label2 );
     
         // JLabel constructor no arguments
         label3 = new JLabel();
         label3.setText( "Label with icon and text at bottom" );
         label3.setIcon( bug );
         label3.setHorizontalTextPosition( SwingConstants.CENTER );
         label3.setVerticalTextPosition( SwingConstants.BOTTOM );
         label3.setToolTipText( "This is label3" );
         c.add( label3 );
     
         setSize( 275, 170 );
         show();
     }
 
     public static void main( String args[] )
         {
         LabelTest app = new LabelTest();
     
         app.addWindowListener( new WindowAdapter()
             {
             public void windowClosing( WindowEvent e )
                 {
                 System.exit( 0 );
             }
         });
     }
}

Using JInternalFrame

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

    public class IframeApp extends JFrame implements ActionListener,InternalFrameListener {
 
    JMenuBar bar = new JMenuBar();
    JMenu fileMenu = new JMenu("File");
    JMenuItem newItem = new JMenuItem("New");
 
    JDesktopPane desktop = new JDesktopPane();
    int iFrameCount = 0;
 
         public IframeApp() {
         super("IframeApp");
     
         fileMenu.add(newItem);
         newItem.addActionListener(this);
         bar.add(fileMenu);
         setJMenuBar(bar);
     
         getContentPane().add(desktop);
     
             this.addWindowListener (new WindowAdapter(){
                 public void windowClosing(WindowEvent e){
                 dispose();
                 System.exit(0);
             }
         });
     }
 
         public void actionPerformed(ActionEvent e) {
         Object source = e.getSource();
             if(source == newItem) {
             ++iFrameCount;
             IFrame iFrame = new IFrame("Untitled "+iFrameCount);
             iFrame.addInternalFrameListener(this);
             desktop.add(iFrame);
         }
     }
 
         public void internalFrameOpened(InternalFrameEvent e) {
     }
         public void internalFrameClosing(InternalFrameEvent e) {
     }
         public void internalFrameClosed(InternalFrameEvent e) {
     }
         public void internalFrameIconified(InternalFrameEvent e) {
     }
         public void internalFrameDeiconified(InternalFrameEvent e) {
     }
         public void internalFrameActivated(InternalFrameEvent e) {
         JInternalFrame sourceFrame =(JInternalFrame)e.getSource();
         setTitle("IframeApp ["+sourceFrame.getTitle()+"]");
     }
 
         public void internalFrameDeactivated(InternalFrameEvent e) {
     }
 
 
         public static void main(String args[]) {
         System.out.println("Starting App");
         IframeApp f = new IframeApp();
         f.setSize(400,400);
         f.show();
     }
}

Sunday, January 11, 2015

Creating JPEG Image

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
public class ScreenImage
    {
     public ScreenImage()
         {
         OutputStream out = null;
         try
             {
             BufferedImage shot = (new Robot()).createScreenCapture(new Rectangle(0, 0, 800,600));
             out = new BufferedOutputStream(new FileOutputStream("shot.jpg"));
             JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
             encoder.encode(shot);
         }
         catch (Exception exc)
             {
             exc.printStackTrace();
         }
         finally
             {
             try
                 {
                 if (out != null)
                     {
                     out.close();
                 }
                 System.exit(0);
             }
             catch (Throwable t) {}
         }
     }
     public static void main(String[] args)
         {
         new ScreenImage();
     }
}

BasicDateFormatting


package com.ack.j2se.date;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class BasicDateFormatting {
  public static void main( String[] args ) throws Exception {
    // get today's date
    Date today = Calendar.getInstance().getTime();

    // create a short version date formatter
    DateFormat shortFormatter
        = SimpleDateFormat.getDateInstance( SimpleDateFormat.SHORT );

    // create a long version date formatter
    DateFormat longFormatter
        = SimpleDateFormat.getDateInstance( SimpleDateFormat.LONG );

    // create date time formatter, medium for day, long for time
    DateFormat mediumFormatter
        = SimpleDateFormat.getDateTimeInstance( SimpleDateFormat.MEDIUM,
                                                SimpleDateFormat.LONG );

    // use the formatters to output the dates
    System.out.println( shortFormatter.format( today ) );
    System.out.println( longFormatter.format( today ) );
    System.out.println( mediumFormatter.format( today ) );

    // convert form date -> text, and text -> date
    String dateAsText = shortFormatter.format( today );
    Date textAsDate = shortFormatter.parse( dateAsText );
    System.out.println( textAsDate );
  }
}

Java Code for simple text clock

This is a simple text clock. See

javax.swing.Timer for an explanation of how use this simple timer class.




import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Calendar;      // only need this one class

/// TextClock
public class TextClock {
   
main
    public static void main(String[] args) {
        JFrame clock = new TextClockWindow();
        clock.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        clock.setVisible(true);
    }//end main
}//endclass TextClock


////// TextClockWindow
class TextClockWindow extends JFrame {
   
instance variables
    private JTextField timeField;  // set by timer listener

   
constructor
    public TextClockWindow() {
        // Build the GUI - only one panel
        timeField = new JTextField(6);
        timeField.setFont(new Font("sansserif", Font.PLAIN, 48));

        Container content = this.getContentPane();
        content.setLayout(new FlowLayout());
        content.add(timeField);
       
        this.setTitle("Text Clock");
        this.pack();

        // Create a 1-second timer and action listener for it.
        // Specify package because there are two Timer classes
        javax.swing.Timer t = new javax.swing.Timer(1000,
              new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      Calendar now = Calendar.getInstance();
                      int h = now.get(Calendar.HOUR_OF_DAY);
                      int m = now.get(Calendar.MINUTE);
                      int s = now.get(Calendar.SECOND);
                      timeField.setText("" + h + ":" + m + ":" + s);
                  }
              });
        t.start();  // Start the timer
    }//end constructor
}//endclass TextClock