📄 graphicspanel.java
字号:
//:GraphicsPanel.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
class GraphicsPanel extends JPanel
implements MouseListener,MouseMotionListener {
private int mflag=0;
private int x0,y0,x1,y1;
private static String objName;
private static Color objColor;
private ArrayList gList=new ArrayList();
public GraphicsPanel(){
Color drawbgColor=Color.white;
setBackground(drawbgColor);
setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
addMouseListener(this);
addMouseMotionListener(this);
}
public static void letName(String str){
objName=str;
}
public static void letColor(Color col){
objColor=col;
}
public void mouseDragged(MouseEvent e){
if(mflag==1)
{
x1=e.getX();
y1=e.getY();
repaint();
}
}
public void mouseMoved(MouseEvent e){ }
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
if(mflag==0)
{
mflag=1;
x0=e.getX();
y0=e.getY();
}
}
public void mouseReleased(MouseEvent e) {
if(mflag==1)
{
x1=e.getX();
y1=e.getY();
mflag=0;
repaint();
}
}
public void paint(Graphics g){
super.paint(g);
g.setColor(objColor);
if(objName=="直线") {
g.drawLine(x0,y0,x1,y1);
}
if(objName=="矩形") {
g.drawRect(x1>=x0?x0:x1, y1>=y0?y0:y1, Math.abs(x1-x0)+1, Math.abs(y1-y0)+1);
}
if(objName=="椭圆"){
g.drawOval(x1>=x0?x0:x1, y1>=y0?y0:y1, Math.abs(x1-x0)+1, Math.abs(y1-y0)+1);
}
if(objName=="填充式矩形"){
g.fillRect(x1>=x0?x0:x1, y1>=y0?y0:y1, Math.abs(x1-x0)+1, Math.abs(y1-y0)+1);
}
if(objName=="填充式椭圆"){
g.fillOval(x1>=x0?x0:x1, y1>=y0?y0:y1, Math.abs(x1-x0)+1, Math.abs(y1-y0)+1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -