📄 canvas.java
字号:
package test;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
import test.*;
public class Canvas extends JPanel implements MouseMotionListener,MouseListener
{
private float wide;
private Color background;
private Color foreground;
private int x1;
private int y1;
private int x2;
private int y2;
private Graphics2D g2d;
private BufferedImage bufImage;
private MainFrame mainFrame;
public Canvas(MainFrame mainFrame )
{
setMainFrame(mainFrame);
setLayout(null);
this.addMouseListener(this);
this.addMouseMotionListener(this);
wide = 3.0F;
background = new Color(255, 255, 255);
foreground = new Color(12,44, 255);
setBufImage(new BufferedImage(400, 400, BufferedImage.TYPE_INT_RGB));
setG2d((Graphics2D)getBufImage().getGraphics());
getG2d().setColor(background);
getG2d().fillRect(0, 0, 400, 400);
x1 = -1;
y1 = -1;
setCursor(
getToolkit().createCustomCursor(
getToolkit().createImage("./res/pen.png"),
new Point(0,0),
"直线"
)
);
}
public void paint(Graphics g)
{
g.drawImage(getBufImage(), 0, 0, this);
}
public void mouseDragged(MouseEvent e)
{
if(x1 >= 0 && y1 >= 0)
{
x2 = e.getX();
y2 = e.getY();
draw(x1, y1, x2, y2);
}
x1 = e.getX();
y1 = e.getY();
try
{
getMainFrame().getClientSend().send(x1, y1, x2, y2);
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
public void draw(int ox1, int oy1, int ox2, int oy2)
{
Graphics g = getGraphics();
getG2d().setColor(foreground);
getG2d().setStroke(new BasicStroke(wide));
getG2d().drawLine(ox1, oy1, ox2, oy2);
update(g);
}
public void mouseMoved(MouseEvent e)
{
}
public void mouseClicked(MouseEvent e)
{
// TODO 自动生成方法存根
}
public void mousePressed(MouseEvent e)
{
// TODO 自动生成方法存根
}
public void mouseReleased(MouseEvent e)
{
x1 = -1;
y1 = -1;
}
public void mouseEntered(MouseEvent e)
{
// TODO 自动生成方法存根
}
public void mouseExited(MouseEvent e)
{
// TODO 自动生成方法存根
}
public BufferedImage getBufImage()
{
return bufImage;
}
public void setBufImage(BufferedImage bufImage)
{
this.bufImage = bufImage;
}
public MainFrame getMainFrame()
{
return mainFrame;
}
public void setMainFrame(MainFrame mainFrame)
{
this.mainFrame = mainFrame;
}
public Graphics2D getG2d()
{
return g2d;
}
public void setG2d(Graphics2D g2d)
{
this.g2d = g2d;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -