Graphics Program in Swing


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

class ass2 extends JFrame
            implements KeyListener, ActionListener, MouseMotionListener, MouseListener
{
            JButton btn1, btn2, btn3, btn4, btn5, btn6;
            JTextField txt1, txt2;
            JLabel lbl;
            JPanel pan1, pan2;
            Graphics g;
            Color c;
            JColorChooser ch;

            int mX1, mY1;
            int mX2, mY2;
            int flag;

            Dimension D;
            int Dh, Dw;

            ass2()
            {
                        g = getGraphics ();
                        D = new Dimension ();
                        c = new Color (0, 0, 250);
                        ch = new JColorChooser();

                        btn1 = new JButton ("Line");
                        btn2 = new JButton ("F Line");
                        btn3 = new JButton ("Rect");
                        btn4 = new JButton ("F Rect");
                        btn5 = new JButton ("Color");
                        btn6 = new JButton ("Clear");
                        btn2.setMnemonic ('L');
                        btn4.setMnemonic ('R');
                        btn5.setMnemonic ('o');

                        txt1=new JTextField (20);
                        txt2=new JTextField (20);
                        txt1.setEnabled (false);
                        txt2.setEnabled (false);

lbl = new JLabel ("Press => l :Line  L :F Line  r :Rect  R :FRect      o :Color   c :Clear");

                        pan1 = new JPanel ();
                        pan2 = new JPanel ();

                        pan1.add (btn1);
                        pan1.add (btn2);
                        pan1.add (btn3);
                        pan1.add (btn4);
                        pan1.add (btn5);
                        pan1.add (btn6);
                        add (pan1, BorderLayout.NORTH);

                        pan2.add (txt1);
                        pan2.add (txt2);
                        add (pan2, BorderLayout.CENTER);
                        add (lbl, BorderLayout.SOUTH);

                        setTitle ("Ass 2");
                        setSize (700, 600);
                        setDefaultCloseOperation (EXIT_ON_CLOSE);
                        setVisible (true);

                        addKeyListener (this );
                        btn1.addActionListener (this );
                        btn2.addActionListener (this );
                        btn3.addActionListener (this );
                        btn4.addActionListener (this );
                        btn5.addActionListener (this );
                        btn6.addActionListener (this );
                        addMouseMotionListener (this );
                        addMouseListener (this );
                        requestFocus ();
            }

            public void myJob ()
            {
                        g.setColor (c);
                        g.setClip (30, 100, Dw-60, Dh-130);
                        g.clearRect (30+1, 100+1, Dw-60-1, Dh-130-1);

                        if (flag==1 )
                                    g.drawLine (50, 150, 250, 350);
                        if (flag==2 )
                                    g.drawLine (mX1,mY1, mX2, mY2);
                        if (flag==3 )
                                    g.drawRect (50, 150, 200, 200);
                        if (flag==4 )
                                    g.drawRect (mX1,mY1, mX2-mX1, mY2-mY1);
                        if (flag==5 )
                        {
                                    c=ch.showDialog (ch, "Color Chooser", c);
                                    flag=1;
                        }
                        if (flag==6 )
                                    g.clearRect (30+1, 100+1, Dw-60-1, Dh-130-1);
            }

            public void keyPressed (KeyEvent e) {}
            public void keyReleased (KeyEvent e) {}
            public void keyTyped (KeyEvent e)
            {
                        g=getGraphics ();

                        if (e.getKeyChar() == 'l' )
                                    flag = 1;
                        if (e.getKeyChar() == 'L' )
                                    flag = 2;
                        if (e.getKeyChar() == 'r' )
                                    flag = 3;
                        if (e.getKeyChar() == 'R' )
                                    flag = 4;
                        if (e.getKeyChar() == 'o' )
                                    flag = 5;
                        if (e.getKeyChar() == 'c' )
                                    flag = 6;

                        txt1.setText ("Flag: "+flag+"  Char: "+e.getKeyChar() );

                        mX1=mX2=mY1=mY2=0;
                        myJob ();
            }

            public void actionPerformed (ActionEvent e)
            {
                        g=getGraphics ();

                        if (e.getSource () == btn1)
                                    flag=1;
                        if (e.getSource () == btn2)
                                    flag=2;
                        if (e.getSource () == btn3)
                                    flag=3;


                        if (e.getSource () == btn4)
                                    flag=4;
                        if (e.getSource () == btn5)
                                    flag=5;
                        if (e.getSource () == btn6)
                                    flag=6;

                        txt1.setText ("Flag: "+flag);
                        mX1=mX2=mY1=mY2=0;
                        myJob ();
                        this.requestFocus ();
            }
            public void mouseMoved (MouseEvent e)
            {
                        g=getGraphics ();
                        D=this.getSize();
                        Dh=(int)D.getHeight();
                        Dw=(int)D.getWidth();
                        g.drawRect (30, 100, Dw-60, Dh-130);
            }
            public void mouseDragged (MouseEvent e)
            {
                        g=getGraphics ();

                        mX2=e.getX();
                        mY2=e.getY();
                        txt2.setText ("X: "+mX2+"    Y: "+mY2);
                        myJob ();
            }



            public void mousePressed (MouseEvent e)
            {
                        mX1=e.getX();
                        mY1=e.getY();
            }
            public void mouseReleased (MouseEvent e)
            {
                        myJob ();
                        mX1=mX2=mY1=mY2=0;           
            }
            public void mouseClicked (MouseEvent e) {}
            public void mouseEntered (MouseEvent e)    {}
            public void mouseExited (MouseEvent e) {}


            public static void main (String args [] )
            {
                        new ass2();
            }
}

0 comments:

Copyright © 2012 OpenTechZone | Kesari Technologies |