📄 painting.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import javax.swing.event.*;
import java.awt.event.*;
class painting
{
static Shape s[]=new Shape[100];
Shape temp;
static paintingBoard p;
static String object;
static Color color=Color.black;
static Color colors[]=new Color[100];
static String shapes[]=new String[100];
static double data[][][]=new double[100][10][2];
int counter;
static int m;
int i;
class paintingBoard extends JComponent
{
public void paint(Graphics g)
{
Graphics2D g2D=(Graphics2D)g;
if(counter==1)
{
g2D.setPaint(color);
g2D.draw(temp);
}
for(i=0;i<m;i++)
{
g2D.setPaint(colors[i]);
g2D.draw(s[i]);
}
}
}
void addPainting(window w)
{
p=new paintingBoard();
p.addMouseMotionListener(new mouseInputHandler());
p.addMouseListener(new mouseInputHandler());
w.content.add(p);
}
//***************************************************************************************************************//
void createLine()
{
Line2D.Double l=new Line2D.Double(startX,startY,x,y);
if(counter==1)
{
temp=l;
data[m][0][0]=startX;
data[m][0][1]=startY;
}
if(counter==2)
{
s[m]=l;
colors[m]=color;
shapes[m]="Line";
data[m][1][0]=endX;
data[m][1][1]=endY;
m+=1;
}
}
void createRectangle()
{
double height=x-startX;
double width=y-startY;
if((x-startX)<0.0)
height=-(x-startX);
if((y-startY)<0.0)
width=-(y-startY);
Rectangle2D.Double r=new Rectangle2D.Double(startX,startY,height,width);
if(counter==1)
{
temp=r;
data[m][0][0]=startX;
data[m][0][1]=startY;
}
if(counter==2)
{
s[m]=r;
colors[m]=color;
shapes[m]="Rectangle";
data[m][1][0]=height;
data[m][1][1]=width;
m+=1;
}
}
//****************************************************************************************************************/
double startX;
double startY;
double endX;
double endY;
double x;
double y;
class mouseInputHandler extends MouseInputAdapter
{
public void mousePressed(MouseEvent e)
{
if(counter==0)
{
startX=e.getX();
startY=e.getY();
counter=1;
}
}
public void mouseReleased(MouseEvent e)
{
if(counter==1)
{
endX=x=e.getX();
endY=y=e.getY();
counter=2;
if(object=="Line")
createLine();
if(object=="Rectangle")
createRectangle();
p.repaint();
counter=0;
}
}
public void mouseDragged(MouseEvent e)
{
if(counter==1)
{
x=e.getX();
y=e.getY();
if(object=="Line")
{
createLine();
p.repaint();
}
if(object=="Rectangle")
{
createRectangle();
p.repaint();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -