⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.java

📁 画图板主要的功能就是用java 来实现我们的画图板的功能!用的是java的GUI来实现的!
💻 JAVA
字号:


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
class Demo implements ActionListener,MouseListener,MouseMotionListener,ItemListener
{
  JFrame f;
  MyCanvas cans;
  JButton bt[];
  JLabel lb=new JLabel("颜色设定:",JLabel.RIGHT);
  JLabel le=new JLabel("小组成员:");
  JLabel lf=new JLabel("陈强 05205020402");
  JLabel lh=new JLabel("高林 05205020407");
  JLabel li=new JLabel("胡伟 05205020408");
  JLabel lg=new JLabel("钟建 05205020438");
   JComboBox cb[]=new JComboBox[2];
   String color[]={"红色","黄色","绿色","蓝色","黑色","白色"};
   String size[]={"1","2","3","4","5","6","7","8"};
  Point dots[] = new Point[1000];
  int dot=0;
  int ys=0;
  int dx=0;
  int flag=0;
  int startx,starty,endx,endy,height,width,chanx,chany;
  Demo()                                     
  {
  
   f = new JFrame("简单画图工具");
   f.setSize(800,600);
   Container con = f.getContentPane();
   con.setLayout(null);
   bt = new JButton[6];
   bt[0] = new JButton("画直线");
   con.add(bt[0]);
   bt[0].setBounds(30,10,80,35);
   bt[0].addActionListener(this);
   bt[1] = new JButton("画曲线");
   con.add(bt[1]);
   bt[1].addActionListener(this);
   bt[1].setBounds(120,10,80,35);
   bt[2] = new JButton("画矩形");
   con.add(bt[2]);
   bt[2].addActionListener(this);
   bt[2].setBounds(210,10,80,35);
   bt[3] = new JButton("画椭圆");
   con.add(bt[3]);
   bt[3].addActionListener(this);
   bt[3].setBounds(300,10,80,35);
   bt[4]=new JButton("清理图板");
   con.add(bt[4]);
   bt[4].addActionListener(this);
   bt[4].setBounds(390,10,100,35);
   con.add(bt[4]);
   bt[5]=new JButton("画圆");
   con.add(bt[5]);
   bt[5].addActionListener(this);
   bt[5].setBounds(500,10,80,35);
   con.add(lb);
   con.add(le);
   con.add(lf);
   con.add(lh);
   con.add(li);
   con.add(lg);
   lb.setBounds(600,10,80,35);
   le.setBounds(620,60,120,35);
   lf.setBounds(620,100,120,35);
   lh.setBounds(620,140,120,35);
   li.setBounds(620,180,120,35);
   lg.setBounds(620,220,120,35);
   cb[0]=new JComboBox();
   cb[1]=new JComboBox();
   for(int i=0;i<6;i++)
   cb[0].addItem(color[i]);
   cb[0].setBounds(680,10,70,35);
    for(int i=0;i<8;i++)
    cb[1].addItem(size[i]); 
    cb[1].setBounds(750,10,35,35);
   cb[0].setBackground(Color.white);
   cb[0].addItemListener(this);
   con.add(cb[0]);
   cb[1].setBackground(Color.white);
   cb[1].addItemListener(this);
   con.add(cb[1]);
   f.addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent e){
	   System.exit(0);
        }
   });
   cans = new MyCanvas();
   cans.setBackground(Color.white);
   cans.addMouseListener(this);
   cans.addMouseMotionListener(this);
   con.add(cans);
   cans.setBounds(30,60,580,480);
    f.setVisible(true);
   }
  public void actionPerformed(ActionEvent e)
  {
   JButton bu=(JButton)e.getSource(); 
   {for(int i=0;i<6;i++)
     if(bu==bt[i])
       flag=i;
    }
  }
  public void mousePressed(MouseEvent e)
  {
     if((flag!=1)&&(flag!=4))                                                                                                                                                                                           
    startx=e.getX();
    starty=e.getY();
  }
  public void mouseReleased(MouseEvent e)
  { 
     if(flag==1||flag==4)
    dot=0;
    else
    {
      endx=e.getX();
        endy=e.getY();
    if(flag!=0)
     {   
     if((endx-startx)>=0)
      {
       width=endx-startx;
       if((endy-starty)>=0)
        height=endy-starty;
       else
        {
         height=starty-endy;
         starty=endy;
        }
      }
    else
      {
         width=startx-endx;
        if((endy-starty)>=0)
         {
           height=endy-starty;
           startx=endx;
          }
        else
         {
           height=starty-endy;
           startx=endx;
           starty=endy;
          }
        
       }
     } 
      cans.repaint();
    }
  }
  public void mouseClicked(MouseEvent e)
  {
   
  }
  public void mouseEntered(MouseEvent e)
  {
   
  }
  public void mouseExited(MouseEvent e)
  {
   
  }
  public void mouseMoved(MouseEvent e)
  {
   
  }
  public void mouseDragged(MouseEvent e)
  {
   if(flag==1||flag==4)
    {
   dots[dot] = new Point(e.getX(),e.getY());
   dot++;
   cans.repaint();
   
  }
  }
  public void itemStateChanged(ItemEvent e)                 
   {
     if(e.getSource()==cb[0])
      {
       int i=0;
       String str=(String)e.getItem();
       for(int j=0;j<6;j++)
         if(str==color[j])
          ys=cb[0].getSelectedIndex();
          }
     if(e.getSource()==cb[1])
      {
       String str=(String)e.getItem();
       for(int j=0;j<8;j++)
         if(str==size[j])
          dx=cb[1].getSelectedIndex();
             
      }
    
   }
  class MyCanvas extends Canvas
  {
  
    public void paint(Graphics g)
    {
        
        Graphics2D g2 = (Graphics2D)g;
        switch(ys)                          
         {
          case 0: g2.setPaint(Color.red);break;
          case 1: g2.setPaint(Color.yellow);break;
          case 2: g2.setPaint(Color.green);break;
          case 3: g2.setPaint(Color.blue);break;
          case 4: g2.setPaint(Color.black);break;
          case 5: g2.setPaint(Color.white);break;
         }
         switch(dx)                      
         {
          case 0: g2.setStroke(new BasicStroke(3));break;
          case 1: g2.setStroke(new BasicStroke(5));break;
          case 2: g2.setStroke(new BasicStroke(7));break;
          case 3: g2.setStroke(new BasicStroke(9));break;
          case 4: g2.setStroke(new BasicStroke(11));break;
          case 5: g2.setStroke(new BasicStroke(13));break;
          case 6: g2.setStroke(new BasicStroke(15));break;
          case 7: g2.setStroke(new BasicStroke(17));break;
          //case 8: g2.setStroke(new BasicStroke(19));break;
      }
      if(flag==0)
      g2.draw(new Line2D.Double(startx,starty,endx,endy));
      if(flag==1)
         for(int i=0;i<dot-1;i++)
           g2.draw(new Line2D.Double(dots[i],dots[i+1]));
      if(flag==2)
        g2.draw(new Rectangle2D.Double(startx,starty,width,height));
      if(flag==3)
       g2.draw(new Ellipse2D.Double(startx,starty,width,height));
       if(flag==4){
	 g2.setPaint(Color.white);
	 g2.setStroke(new BasicStroke(80));
         for(int i=0;i<dot-1;i++)
           g2.draw(new Line2D.Double(dots[i],dots[i+1]));
      }
      if(flag==5){
         if(width>height){
             g2.draw(new Ellipse2D.Double(startx,starty,width,width));
         }else{
              g2.draw(new Ellipse2D.Double(startx,starty,height,height));
         }
      }
    } 
    public void update(Graphics g)
    {
      paint(g);
    }
  }
  
  public static void main(String args[])
  {
    new Demo(); 
   
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -