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: