rendered paste bodypackage crashproject;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
class DrawingPanel extends JPanel
{
Image img;
DrawingPanel (Image img)
{
this.img = img;
}
@Override
public void paintComponent (Graphics g)
{
super.paintComponent (g);
//Draw image centered in the middle of the panel
g.drawImage (img, 0, 0, this);
}
}
public class JMainFrame extends JFrame implements MouseListener, MouseMotionListener {
private BufferedImage backBuffer;
private Graphics2D bf;
private DrawingPanel pannel;
//debug
int lx,ly;
public JMainFrame()
{
//debug
lx=-1;
ly=-1;
//Frame's properties
setTitle("Crash Project");
setBounds(100,100,500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create the components
JButton send=new JButton("Send");
//add listenners
addMouseMotionListener(this);
addMouseListener(this);
//create the backbuffer
backBuffer=new BufferedImage(getSize().width, getSize().height, BufferedImage.TYPE_BYTE_BINARY);
bf = backBuffer.createGraphics();
bf.drawRect(0, 0, backBuffer.getWidth(), backBuffer.getHeight());
bf.setColor(Color.white);
bf.drawString("Je suis mupuf !!", 100, 100);
//create the pannel
pannel=new DrawingPanel(backBuffer);
//Set the layout
Panel p = new Panel();
Container c = getContentPane();
p.setLayout(new BorderLayout());
p.add(send, BorderLayout.EAST);
c.add(pannel,BorderLayout.CENTER);
c.add(p,BorderLayout.SOUTH);
}
public void mouseDragged(MouseEvent e)
{
//Avoid java's bug with lines
if(lx>=0 && ly>=0)
{
int x1,x2,y1,y2;
if(ly>e.getY())
{
x1=e.getX();
y1=e.getY();
x2=lx;
y2=ly;
}
else
{
x2=e.getX();
y2=e.getY();
x1=lx;
y1=ly;
}
bf.drawLine(x1, y1, x2, y2);
//repaint (opti à faire ici)
repaint();
}
//Get the new coordinates
lx=e.getX();
ly=e.getY();
}
public void mouseMoved(MouseEvent e) {
//System.out.println("Je suis passé par mouseMoved");
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
lx=-1;
ly=-1;
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}