You are on page 1of 5

import import import import import import import import import import import import import import import

import import public // // //

java.awt.BorderLayout; java.awt.Color; java.awt.Graphics; java.awt.event.ActionEvent; java.awt.event.ActionListener; java.awt.event.MouseAdapter; java.awt.event.MouseEvent; java.awt.event.MouseListener; java.awt.event.MouseMotionAdapter; java.awt.event.MouseMotionListener; java.awt.Graphics; javax.swing.JButton; javax.swing.JColorChooser; javax.swing.JFrame; javax.swing.JPanel; javax.swing.JToggleButton; javax.swing.border.Border; class paintpgm implements MouseListener, MouseMotionListener{ JFrame frame = new JFrame("Hello paint"); JPanel pane = new JPanel(); JButton pencil = new JButton("Pencil"); JFrame frame = new JFrame("Hello paint"); JPanel pane = new JPanel(); JToggleButton pencil = new JToggleButton("Pencil"); JToggleButton rectangle = new JToggleButton("Rectangle"); int val, lastx=0, lasty=0, x=0, y=0; JButton clear = new JButton("Clear"); JToggleButton oval = new JToggleButton("Oval"); JButton color = new JButton("Choose color"); JToggleButton eraser = new JToggleButton("Eraser"); Color c = Color.black; public static void main(String[] args) { paintpgm paint = new paintpgm(); } public paintpgm() { // TODO Auto-generated constructor stub pane.setLayout(new BorderLayout()); pencil.addMouseListener(this); pencil.addMouseMotionListener(this); rectangle.addMouseListener(this); pane.add(pencil, BorderLayout.NORTH); clear.addMouseListener(this); oval.addMouseListener(this); color.addMouseListener(this); eraser.addMouseListener(this); JPanel butt = new JPanel(); butt.add(pencil); butt.add(rectangle); butt.add(oval); butt.add(clear); butt.add(color); butt.add(eraser); pane.add(rectangle, BorderLayout.WEST); pane.setBackground(Color.white); frame.setLayout(new BorderLayout());

// //

//

frame.setBackground(Color.white); frame.add(pane, BorderLayout.CENTER); frame.add(butt, BorderLayout.NORTH); frame.setVisible(true); frame.setSize(500,500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void record (int x , int y ) { lastx=x; lasty=y; } private void draw(int X, int Y) { // TODO Auto-generated method stub if (pencil.isSelected()) { Graphics g = frame.getGraphics(); g.setColor(c); g.drawLine(lastx+8, lasty+65, x+8, y+65); record(x, y); } if (eraser.isSelected()) { Graphics g = frame.getGraphics(); g.setColor(pane.getBackground()); lastx=x;lasty=y; g.fillRect(lastx+8, lasty+65, 30, 30); record(x, y); } if (rectangle.isSelected()) { Graphics g = frame.getGraphics(); x=X;y=Y; g.setColor(c); System.out.println("Lastx : "+lastx+" Lasty : "+lasty+" X = : " +x+" Y : "+y); int coodx=x-lastx, coody=y-lasty, startx=lastx, starty=lasty; if (coodx<0) { coodx=coodx*-1; startx=x; } if (coody<0) { coody=coody*-1; starty=y; } g.drawRect(startx+8, starty+65, coodx, coody); } if (oval.isSelected()) { Graphics g = frame.getGraphics(); x=X;y=Y; g.setColor(c);

System.out.println("Lastx : "+lastx+" Lasty : "+lasty+" X = : " +x+" Y : "+y); int coodx=x-lastx, coody=y-lasty, startx=lastx, starty=lasty; if (coodx<0) { coodx=coodx*-1; startx=x; } if (coody<0) { coody=coody*-1; starty=y; } g.drawOval(startx+8, starty+65, coodx, coody); } }

@Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub if (e.getComponent()==pencil) { System.out.print("Pencil selected"); if (pencil.isSelected()) { pane.addMouseMotionListener(this); } else { pane.removeMouseMotionListener(this); } } if (e.getComponent()==eraser) { System.out.print("Eraser selected"); if (eraser.isSelected()) { pane.addMouseMotionListener(this); } else { pane.removeMouseMotionListener(this); } } else if (rectangle.isSelected()) { c = JColorChooser.showDialog(null, "Choose", pane.getBackground(

// ));

pane.removeMouseListener(this); pane.removeMouseMotionListener(this); System.out.println("Rectangle is selected"); pane.addMouseListener(this); } else if (oval.isSelected()) { pane.removeMouseListener(this); pane.removeMouseMotionListener(this); System.out.println("Oval is selected"); pane.addMouseListener(this); } if (e.getComponent()==clear) { pane.repaint(); } if (e.getComponent()==color) { c = JColorChooser.showDialog(null, "choose", frame.getBackground ()); } } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent event) { // TODO Auto-generated method stub int x,y; if (pencil.isSelected()) { record(event.getX(),event.getY()); } if (rectangle.isSelected()) { lastx=event.getX(); lasty=event.getY(); } if (oval.isSelected()) { lastx=event.getX(); lasty=event.getY(); } if (eraser.isSelected()) { record(event.getX(),event.getY()); } // draw(x,y);

} @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub if (pencil.isSelected()) { record(e.getX(),e.getY()); } if (rectangle.isSelected()) { draw(e.getX(),e.getY()); } if (oval.isSelected()) { draw(e.getX(),e.getY()); } if (eraser.isSelected()) { record(e.getX(),e.getY()); } // System.out.println("mouse dragged");

} @Override public void mouseDragged(MouseEvent event) { // TODO Auto-generated method stub if (pencil.isSelected()) { x = event.getX(); y = event.getY(); draw(x,y); } if (eraser.isSelected()) { // System.out.println("Eraser being dragged"); x = event.getX(); y = event.getY(); draw(x,y); } } @Override public void mouseMoved(MouseEvent arg0) { // TODO Auto-generated method stub } }

You might also like