Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
10 views4 pages

Drawing Application

The document is a Java program that creates a simple drawing application using Swing components. It features a canvas for drawing, a toolbar for color selection, size adjustment, and options to save or clear the canvas. The program allows users to draw rectangles with customizable colors and sizes, and includes functionality for background color changes and brush/erase tools.

Uploaded by

emeetabhi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views4 pages

Drawing Application

The document is a Java program that creates a simple drawing application using Swing components. It features a canvas for drawing, a toolbar for color selection, size adjustment, and options to save or clear the canvas. The program allows users to draw rectangles with customizable colors and sizes, and includes functionality for background color changes and brush/erase tools.

Uploaded by

emeetabhi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

import java.awt.

AWTException;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Canvas implements MouseMotionListener{
JFrame frame = new JFrame();
JPanel canvasPanel, toolBar;
JButton btn;
JTextField col, sz;
String prev, back;

Canvas() {
canvasPanel = new JPanel();
canvasPanel.addMouseMotionListener(this);
}
public void CanvasView() {

//-----------CANVAS-------------
canvasPanel.setBounds(320, 30, 850, 600);
canvasPanel.setBackground(Color.white);
canvasPanel.setLayout(null);
frame.add(canvasPanel);
canvasPanel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String cl = col.getText();
int rad = Integer.parseInt(sz.getText());
Graphics grap = canvasPanel.getGraphics();
grap.setColor(Color.decode(cl));
grap.fillRect(e.getX(), e.getY(), rad, rad);
}
});
//-----------------------------

//-----------TOOLBAR-------------
toolBar = new JPanel();
toolBar.setBounds(30, 30, 250, 600);
toolBar.setBackground(Color.white);
toolBar.setLayout(null);
frame.add(toolBar);
addButton(32, 30, "#000000");
addButton(105, 30, "#FFFFFF");
addButton(177, 30, "#808080");
addButton(32, 90, "#FF0000");
addButton(105, 90, "#00FF00");
addButton(177, 90, "#0000FF");
addButton(32, 150, "#FFFF00");
addButton(105, 150, "#FFA500");
addButton(177, 150, "#A020F0");
addButton(32, 210, "#FFC0CB");
addButton(105, 210, "#964B00");
addButton(177, 210, "#C32148");
//-----------------------------

//---------CUSTOM---------------
JLabel cllabel = new JLabel("Custom Colors : ");
cllabel.setBounds(30, 260, 100, 50);
toolBar.add(cllabel);
col = new JTextField();
col.setBounds(30, 310, 190, 30);
col.setText("#000000");
toolBar.add(col);
//------------------------------

//-----------BACKGROUNDCOLOUR-------------
back = "#FFFFFF";
JButton bc = new JButton("SET BACKGROUND");
bc.setBounds(30, 350, 190, 30);
toolBar.add(bc);
bc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
back = col.getText();
canvasPanel.setBackground(Color.decode(back));
}
});
//---------------------------------
//---------SIZE------------------
JLabel szlabel = new JLabel("Size : ");
szlabel.setBounds(30, 380, 100, 50);
toolBar.add(szlabel);
JButton sub = new JButton("-");
sub.setBounds(30, 415, 50, 30);
toolBar.add(sub);
sz = new JTextField();
sz.setBounds(100, 415, 50, 30);
sz.setText("5");
toolBar.add(sz);
JButton add = new JButton("+");
add.setBounds(170, 415, 50, 30);
toolBar.add(add);
sub.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sz.setText(Integer.parseInt(sz.getText())-1+"");
}
});
add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sz.setText(Integer.parseInt(sz.getText())+1+"");
}
});
//-------------------------------

//---------PAINT&ERASE-----------------
JButton brush = new JButton("BRUSH");
brush.setBounds(30, 465, 80, 30);
toolBar.add(brush);
JButton erase = new JButton("ERASE");
erase.setBounds(140, 465, 80, 30);
toolBar.add(erase);
prev = "#000000";
brush.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
col.setText(prev);
}
});
erase.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(!col.getText().equals(back))
prev = col.getText();
col.setText(back);
}
});
//--------------------------------

//-----------CLEAN--------------
JButton clean = new JButton("CLEAN");
clean.setBounds(30, 515, 190, 30);
toolBar.add(clean);
clean.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
canvasPanel.removeAll();
canvasPanel.repaint();
}
});
//-------------------------------

//-----------SAVE---------------
JButton save = new JButton("SAVE");
save.setBounds(30, 555, 190, 30);
toolBar.add(save);
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String tm = java.time.LocalTime.now()+"";
tm = tm.substring(0, 2) + tm.substring(3, 5) + tm.substring(6, 8) +
tm.substring(9, 12) + ".png";
try {
BufferedImage image = getImg(canvasPanel);
ImageIO.write(image, "png", new File(tm));
}
catch(Exception ex) {

}
}
});
//-------------------------------

//------FRAME------------------
frame.setSize(1250, 700);
frame.setLocationRelativeTo(null);
frame.setLayout(null);
frame.getContentPane().setBackground(Color.decode("#001122"));
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//---------------------------------
}
//---------MOUSE FUNCTIONS---------------------
@Override
public void mouseDragged(MouseEvent e) {
String cl = col.getText();
int rad = Integer.parseInt(sz.getText());
Graphics grap = canvasPanel.getGraphics();
grap.setColor(Color.decode(cl));
grap.fillRect(e.getX(), e.getY(), rad, rad);
}
@Override
public void mouseMoved(MouseEvent e) {

}
//-------------------------------------------------
//---------FUNCTIONS TO CREATE SIMILAR BUTTONS---------
public void addButton(int x, int y, String clr) {
this.btn = new JButton();
btn.setBounds(x, y, 40, 40);
btn.setBackground(Color.decode(clr));
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
col.setText(clr);
}
});
toolBar.add(btn);
}
public BufferedImage getImg(Component comp) throws AWTException {
Point p = comp.getLocationOnScreen();
Dimension dim = comp.getSize();
BufferedImage capture = new Robot().createScreenCapture(new Rectangle(p,
dim));
return capture;
}}
public class Drawing{
public static void main(String[] args) {
Canvas canvas = new Canvas();
canvas.CanvasView();
}
}

You might also like