📄 draw.java
字号:
g.drawRect(rectx1[i] , recty1[i] , rectx2[i] - rectx1[i] , recty2[i] - recty1[i]) ;
}
else
{
if(isFilled)
{
g.fillRect(rectx1[i] , recty2[i] , rectx2[i] - rectx1[i] , recty1[i] - recty2[i]);
}
else
g.drawRect(rectx1[i] , recty2[i] , rectx2[i] - rectx1[i] , recty1[i] - recty2[i]) ;
}
}
else
{
if(recty2[i] > recty1[i])
{
if(isFilled)
{
g.fillRect(rectx2[i] , recty1[i] , rectx1[i] - rectx2[i] , recty2[i] - recty1[i]) ;
}
else
g.drawRect(rectx2[i] , recty1[i] , rectx1[i] - rectx2[i] , recty2[i] - recty1[i]) ;
}
else
{
if(isFilled)
{
g.fillRect(rectx2[i] , recty2[i] , rectx1[i] - rectx2[i] , recty1[i] - recty2[i]) ;
}
else
g.drawRect(rectx2[i] , recty2[i] , rectx1[i] - rectx2[i] , recty1[i] - recty2[i]) ;
}
}
}
//画圆
for(int i=0;i<cricletp+1;i++)
{
switch (criclecolor[i])
{
case 0: g.setColor(Color.red) ; break;
case 1: g.setColor(Color.blue) ; break;
case 2: g.setColor(Color.green) ; break;
case 3: g.setColor(Color.orange) ; break;
case 4: g.setColor(Color.white) ; break ;
case 5: g.setColor(Color.pink) ; break ;
case 6: g.setColor(Color.cyan) ; break ;
case 7: g.setColor(Color.magenta) ; break ;
case 8: g.setColor(Color.yellow) ; break ;
case 9: g.setColor(Color.black) ; break ;
}
switch(criclefill[i])
{
case 0:isFilled=false;break;
case 1:isFilled=true;break;
}
int size = Math.abs((int)Math.sqrt((criclex2[i]-criclex1[i])*(criclex2[i]-criclex1[i]) +
(cricley2[i]-cricley1[i])*(cricley2[i]-cricley1[i])));
if(criclex1[i]>cricley1[i])
{
if(isFilled)
{
g.fillOval(criclex1[i],cricley1[i],size,size);
}
else
g.drawOval(criclex1[i],cricley1[i],size,size);
}
else
{
if(isFilled)
{
g.fillOval(cricley1[i],criclex1[i],size,size);
}
else
g.drawOval(cricley1[i],criclex1[i],size,size);
}
}
}
//鼠标按下移动事件
public void mouseDragged(MouseEvent e)
{
//System.out.println ("linetp = " ) ;
if(oo == 0)
{
linex2[linetp] = e.getX() ;
liney2[linetp] = e.getY() ;
}
if(oo == 1)
{
rectx2[recttp] = e.getX() ;
recty2[recttp] = e.getY() ;
}
if(oo==3)
{
criclex2[cricletp]=e.getX();
cricley2[cricletp]=e.getY();
}
if(oo==4)
{
randomx2[randomtp]=e.getX();
randomy2[randomtp]=e.getY();
// linestart.move(e.getX(),e.getY());
//g.dispose();
}
this.repaint() ;
}
public void mouseMoved(MouseEvent e) {
x_tem=e.getX();
y_tem=e.getY();
}
public void mouseClicked(MouseEvent e) {
}
//鼠标按下
public void mousePressed(MouseEvent e) {
if(oo == 0)
{
linex1[linetp] = e.getX() ;
liney1[linetp] = e.getY() ;
}
if(oo == 1)
{
rectx1[recttp] = e.getX() ;
recty1[recttp] = e.getY() ;
}
if(oo==3)
{
criclex1[cricletp]=e.getX();
cricley1[cricletp]=e.getY();
}
if(oo==4)
{
//.............................
// linestart.move(e.getX(),e.getY());
}
}
//鼠标松开
public void mouseReleased(MouseEvent e)
{
if(oo == 0)
{
//System.out.println ("linetp = " + linetp) ;
linex2[linetp] = e.getX() ;
liney2[linetp] = e.getY() ;
linetp ++ ;
linecolor[linetp] = linecolor[linetp-1] ; //保存颜色
}
if(oo == 1)
{
//System.out.println ("recttp = " + recttp) ;
rectx2[recttp] = e.getX() ;
recty2[recttp] = e.getY() ;
recttp ++ ;
rectcolor[recttp] = rectcolor[recttp-1] ;
rectfill[recttp] = rectfill[recttp-1] ;
}
if(oo==3)
{
criclex2[cricletp] = e.getX() ;
cricley2[cricletp] = e.getY() ;
cricletp ++ ;
criclecolor[cricletp] = criclecolor[cricletp-1] ;
criclefill[cricletp] = criclefill[cricletp-1] ;
}
if(oo==4)
{
randomx2[randomtp]=e.getX();
randomy2[randomtp]=e.getY();
randomtp++;
randomcolor[randomtp]=randomcolor[randomtp-1];
randomfill[randomtp]=randomfill[randomtp-1];
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
//按扭事件
public void actionPerformed(ActionEvent e) {
//按下颜色按钮设置画笔颜色
if(e.getActionCommand().equals("red")) {
linecolor[linetp] = 0 ;
criclecolor[cricletp] = 0 ;
rectcolor[recttp] = 0 ;
}
if(e.getActionCommand().equals("blue")) {
linecolor[linetp] = 1 ;
criclecolor[cricletp] = 1 ;
rectcolor[recttp] = 1 ;
}
if(e.getActionCommand().equals("green")) {
linecolor[linetp] = 2 ;
criclecolor[cricletp] = 2 ;
rectcolor[recttp] = 2 ;
}
if(e.getActionCommand().equals("orange")) {
linecolor[linetp] = 3 ;
criclecolor[cricletp] = 3 ;
rectcolor[recttp] = 3 ;
}
if(e.getActionCommand().equals("white")) {
linecolor[linetp] = 4 ;
criclecolor[cricletp] = 4 ;
rectcolor[recttp] = 4 ;
}
if(e.getActionCommand().equals("pink")) {
linecolor[linetp] = 5 ;
criclecolor[cricletp] = 5 ;
rectcolor[recttp] = 5 ;
}
if(e.getActionCommand().equals("cyan")) {
linecolor[linetp] = 6 ;
criclecolor[cricletp] = 6 ;
rectcolor[recttp] = 6 ;
}
if(e.getActionCommand().equals("magenta")) {
linecolor[linetp] = 7 ;
criclecolor[cricletp] = 7 ;
rectcolor[recttp] = 7 ;
}
if(e.getActionCommand().equals("yellow")) {
linecolor[linetp] = 8 ;
criclecolor[cricletp] = 8 ;
rectcolor[recttp] = 8 ;
}
if(e.getActionCommand().equals("black")) {
linecolor[linetp] = 9 ;
criclecolor[cricletp] = 9 ;
rectcolor[recttp] = 9 ;
}
//按下功能按钮设置画笔型号
if(e.getActionCommand()=="Line")
{
oo=0;
}
if(e.getActionCommand()=="Rect")
{
oo = 1 ;
}
if(e.getActionCommand()=="Cricle")
{
oo=3;
}
if(e.getActionCommand()=="pen")
{
oo=4;
}
//设置图画填充类型
if(e.getActionCommand()=="Filled")
{
rectfill[recttp]=1;
criclefill[cricletp]=1;
}
if(e.getActionCommand()=="Hollow")
{
rectfill[recttp]=0;
criclefill[cricletp]=0;
}
//设置历史记录
if(e.getActionCommand()=="Eraser")
{
this.Eraser();
}
if(e.getActionCommand()=="<<Back")
{
this.Back();
}
}
public void Back()
{
//未完成
/*linex1[linetp] = linex1[linetp-1] ;
liney1[linetp] = liney1[linetp-1] ;
linex2[linetp] = linex2[linetp-1] ;
liney2[linetp] = liney2[linetp-1] ;
rectx1[recttp] = rectx1[recttp-1] ;
recty1[recttp] = recty1[recttp-1] ;
rectx2[recttp] = rectx2[recttp-1] ;
recty2[recttp] = recty2[recttp-1] ;
criclex1[cricletp] = criclex1[cricletp-1] ;
cricley1[cricletp] = cricley1[cricletp-1] ;
criclex2[cricletp] = criclex2[cricletp-1] ;
cricley2[cricletp] = cricley2[cricletp-1] ; */
//linetp--;
//recttp--;
//cricletp--;
//this.repaint();
}
//恢复成初始状态函数
public void Eraser()
{
int randomtp = 0 ;
int linetp = 0 ;
int recttp = 0 ;
int cricletp = 0 ;
int texttp = 0 ;
for (int i = 0; i<num; i++)
{
linex1[i] = 0 ;
liney1[i] = 0 ;
linex2[i] = 0 ;
liney2[i] = 0 ;
rectx1[i] = 0 ;
recty1[i] = 0 ;
rectx2[i] = 0 ;
recty2[i] = 0 ;
criclex1[i] = 0 ;
cricley1[i] = 0 ;
criclex2[i] = 0 ;
cricley2[i] = 0 ;
}
this.repaint() ;
}
public int getX(int x)
{
x=x_tem;
return x;
}
//这是Mypanel的括号
}
class MessagePanel extends JPanel
{
public void paint(Graphics g)
{
super.paint(g);
g.drawString("",10,10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -