Java encryption and decryption sample sharing

  • 2020-04-01 02:54:10
  • OfStack

(1) first define the class to be implemented, I first defined an abstract class


//The graphics class  
abstract class  Shape{  
     int x,y;  
     int x1,y1;  
    Color color ;  
    Graphics g ;  
    byte type ;  
    public abstract void draw(Graphics g) ;  

}  
//Linear class  
 class LineShape extends Shape{  

    public LineShape(int x, int y ,int x1,int y1,Color color){  
        this.x = x ;  
        this.y = y ;  
        this.x1 = x1 ;  
        this.y1 = y1 ;  
        this.color = color ;  
        this.type = 0;  
    }  

    @Override  
    public void draw(Graphics g) {  
        g.setColor(color) ;  
        g.drawLine(x, y, x1, y1) ;  

    }  

 }  
//Round class  
class OvalShape extends Shape{  

  public OvalShape(int x,int y, int x1,int y1,Color color){  
        this.x = x ;  
        this.y = y ;  
        this.x1 = x1 ;  
        this.y1 = y1 ;  
        this.color = color ;  
        this.type = 1;  
     }  
    @Override  
    public void draw(Graphics g) {  

        g.setColor(color) ;  
        g.drawOval((x+x1)/2,(y+y1)/2,(x1-x)/2 ,(y1-y)/2 );  
    }  

 }  
//Image class  
 class picture extends Shape{  
     int a ;  
     int b ;  
     int cl[][] ;  
     public picture(int a,int b,int cl[][]){  
         this.type =2 ;  
         this.a =a ;  
         this.b =b ;  
         this.cl =cl ;  

     }  
     public void draw(Graphics g){  
         for(int k=0;k<a;k++){  
              for(int j=0;j<b;j++){  

                Color c   =  new Color(cl[k][j]) ;  
                g.setColor(c);  
                g.drawLine(k+100,j+100,k+100,j+100);  
              }  
          }   
     }  
 }  
 

(2) total method class


public class BmpSaveStart {  

    Graphics g ;  
    public static void main(String[] args) {  
         new BmpSaveStart() .UI();  

    }  
    public void UI(){  
        JFrame jf = new JFrame();  
        jf.setSize(600,600);  

        jf.setTitle(" Storage of pictures ");  
        jf.setBackground(Color.WHITE );  
        JMenuBar bar = new JMenuBar() ;  
        JMenu menu1 = new JMenu(" options ") ;  
        JMenuItem m1 = new JMenuItem(" A circle ");  
        JMenuItem m2 = new JMenuItem(" Line drawing ");  
        JMenuItem m3 = new JMenuItem(" storage ");  
        JMenuItem m4 = new JMenuItem(" Open the ");  
        JMenuItem m5 = new JMenuItem(" The picture ");  
        menu1.add(m1) ;  
        menu1.add(m2) ;  
        menu1.add(m3) ;  
        menu1.add(m4) ;  
        menu1.add(m5) ;  
        bar.add(menu1);  
        jf.setJMenuBar(bar);  

        jf.setDefaultCloseOperation(3);  
        jf.setVisible(true) ;  
        PaintDemo p =   new PaintDemo(g,jf) ;  

        m1.setActionCommand(" A circle ");  
        m2.setActionCommand(" Line drawing ");  
        m3.setActionCommand(" storage ");  
        m4.setActionCommand(" Open the ");  
        m5.setActionCommand(" The picture ") ;  

        m1.addActionListener(p);  
        m2.addActionListener(p);  
        m3.addActionListener(p);  
        m4.addActionListener(p);  
        m5.addActionListener(p);  
    }  
}  

  (3) listening class


class PaintDemo implements MouseListener,ActionListener{  
ImageIcon img = new ImageIcon("Images/100.gif");  
BufferedImage bufImage = new BufferedImage(img.getIconWidth(),img.getIconHeight(),BufferedImage.TYPE_INT_RGB);  

 int x,y;  
 int x1,y1;  
 JFrame jf ;  
 Graphics g ;  
 String str ;  
 Color c ;  
 int cr ;  
 int cl[][] = new int[1000][1000] ;  

  
ArrayList<Shape> shapes = new ArrayList<Shape>() ;  
 Random random =new Random() ;  
 int R ;  
 int G ;  
 int B ;  
 public PaintDemo( Graphics g ,JFrame jf){  
     this.jf = jf;  
     this.g = jf.getGraphics();  
 }  
    @Override  
    public void mouseClicked(MouseEvent e) {  
        // TODO Auto-generated method stub  

    }  

    @Override  
    public void mousePressed(MouseEvent e) {  
           x=e.getX();  
           y=e.getY();  

          
    }  

    @Override  
    public void mouseReleased(MouseEvent e) {  
          x1 = e.getX();  
          y1 = e.getY();  
          setColor() ;  
          if(str.equals(" A circle ")){  
             // paintOval();  

                Shape shape = new OvalShape(x, y, x1, y1,c) ;  
                shape.draw(g);  
                shapes.add(shape) ;  
            }  
            if(str.equals(" Line drawing ")){  
                //paintLine();  

                Shape shape = new LineShape(x, y, x1, y1,c) ;  
                shape.draw(g);  
                shapes.add(shape) ;  
                /*File  f =new File("D:\test.txt") ; 
                if(f==null){ 
                    try { 
                        f.createNewFile(); 
                    } catch (Exception e1) { 
                        // TODO Auto-generated catch block 
                        e1.printStackTrace(); 
                    } 
                }*/  
            }  

                  

            }  
public void saveFile(String path,ArrayList<Shape> shapes){  
    try{  
        //File output stream & NBSP;
        FileOutputStream fos = new FileOutputStream(path) ;  
        //Wrapping the file output stream as a stream of writable base type & NBSP;
        DataOutputStream dos = new DataOutputStream(fos) ;  
        dos.writeInt(shapes.size());//Number of graphs written to the queue & NBSP;
        //Read queue & NBSP;
        for(int i=0;i<shapes.size();i++){  
            //Take a shape & NBSP;
            Shape shape = shapes.get(i);  
            byte type = shape.type ;  

              
            if(type==0){//Depending on the type, if it's a straight line & NBSP;
                System.out.println(" Start storing lines ") ;  
                dos.writeByte(type);  
                LineShape line = (LineShape) shape ;//Cast to a straight line type & NBSP;
                //Write line shape data;  
                int x = line.x ;  
                int y = line.y ;  
                int x1 = line.x1 ;  
                int y1 = line.y1 ;  
                Color color = line.color ;  
                cr = color.getRGB();  
                dos.writeInt(x);  
                dos.writeInt(y);  
                dos.writeInt(x1);  
                dos.writeInt(y1);  
                dos.writeInt(cr);  
            }else if(type == 1){  
                dos.writeByte(type);  
                System.out.println(" Start storing the circle ") ;  
                OvalShape oval = (OvalShape) shape ;//Cast to circle class & cake;
                //Write line shape data;  
                int x = oval.x ;  
                int y = oval.y ;  
                int x1 = oval.x1 ;  
                int y1 = oval.y1 ;  
                Color color = oval.color ;  
                cr = color.getRGB() ;  
                dos.writeInt(x);  
                dos.writeInt(y);  
                dos.writeInt(x1);  
                dos.writeInt(y1);  
                dos.writeInt(cr);  
            }else if(type ==2){  

                dos.writeByte(type) ;  
                picture pl = (picture) shape ;  
                System.out.println(" Start storing pictures ") ;  
                int width = pl.a ;  
                int height = pl.b ;  
                dos.writeInt(width) ;  
                dos.writeInt(height) ;  
                for(int k=0;k<width;k++){  
                    for(int j=0;j<height;j++){  
                        int t = pl.cl[k][j];  
                        dos.writeInt(t) ;  
                    }  
                }  

            }  
            }  
        dos.flush() ;  
        fos.close();  
    }catch(Exception e){  
        e.printStackTrace();  
    }  
}  
public ArrayList<Shape> readFile(String path){  

    try{  
        //Creates an input stream for the file object & NBSP;
        FileInputStream fis = new FileInputStream(path);  
        //Wrapping the file input stream as a stream of a readable base type & NBSP;
        DataInputStream dis = new DataInputStream(fis);  
        //The length of the file is read first, that is, the total number of shapes & NBSP;
        int len = dis.readInt() ;  
        for(int i=0 ;i<len;i++){  
            byte  type = dis.readByte();  
            if(type==0){  
            int a=  dis.readInt();  
            int b=  dis.readInt();  
            int c=  dis.readInt();  
            int d=  dis.readInt();  
            Color f= new Color(dis.readInt());  
            LineShape line = new LineShape(a,b,c,d,f);  
            //Read line setting & NBSP;

            //Put the line in the queue & NBSP;
            shapes.add(line) ;  
            }else if(type == 1){  

                int a=  dis.readInt();  
                int b=  dis.readInt();  
                int c=  dis.readInt();  
                int d=  dis.readInt();  
                Color f= new Color(dis.readInt());  
                System.out.println(" Start reading the circle ") ;  
                OvalShape oval = new OvalShape(a,b,c,d,f);  
                shapes.add(oval) ;  
              }else if(type == 2){  

                int   a=    dis.readInt();  
                int    b=   dis.readInt();  

                  for(int k=0;k<a;k++){  
                      for(int j=0;j<b;j++){  

                     cl[k] [j] = dis.readInt();  

                      }  
                  }  
                  picture   pic = new picture(a,b,cl) ;  
                  shapes.add(pic) ;  
              }  

                
    }}catch(Exception e){  
        e.printStackTrace();  
    }  
    return shapes ;  
}  
    @Override  
    public void mouseEntered(MouseEvent e) {  
        // TODO Auto-generated method stub  

    }  

    @Override  
    public void mouseExited(MouseEvent e) {  
        // TODO Auto-generated method stub  

    }  
    public void setColor(){  
          R =random.nextInt(255);  
          G =random.nextInt(255);  
          B =random.nextInt(255);  
          c=new Color(R,G,B) ;  
    }  
   /* public void paintLine(){ 
        setColor(); 
          g.drawLine(x, y, x1, y1) ; 
    } 
    public void paintOval(){ 
        setColor(); 
        g.drawOval((x+x1)/2,(y+y1)/2,(x1-x)/2 ,(y1-y)/2 ); 
    } 
    */  
    @Override  
    public void actionPerformed(ActionEvent e) {  
        str = e.getActionCommand() ;  
        jf.addMouseListener(this);  
        if(str.equals(" storage ")){  

            saveFile("D:\test.txt",shapes) ;  

        }  
        if(str.equals(" Open the ")){  

            readFile("D:\test.txt") ;  
            for(int i=0;i<shapes.size();i++){  

                Shape shape = shapes.get(i);  
                if(shape.type ==0){  
                    System.out.println(" Make sure it's a circle ");  
                    LineShape line = (LineShape)shape ;  
                    line.draw(g);  
                }else if(shape.type==1){  
                    System.out.println(" Make sure it's a circle ");  
                    OvalShape  oval = (OvalShape)shape ;  
                    oval.draw(g);  
                }else if(shape.type ==2){  
                    System.out.println(" Make sure it's the image type ");  
                    picture pl = (picture)shape ;  
                    pl.draw(g) ;  

                }  

                  
            }  
        }  
        if(str.equals(" The picture ")){  

        Thread th = new Thread(new Runnable(){  

            public void run(){  
                while(true){  
                    try{  
                        Thread.sleep(30) ;  

               Graphics g1 = bufImage.getGraphics();  

               g1.drawImage(img.getImage(), 0,0,null);  
             jf.getGraphics().drawImage(bufImage,100,100,null) ;  
              int width = bufImage.getWidth();  
               int height = bufImage.getHeight() ;  
           for(int k=0;k<width;k++){  
                for(int j=0;j<height;j++){  
                    int p =bufImage.getRGB(k,j) ;  
                    cl[k][j] = p ;  
                         }  
                          }  
              picture pe =new picture(width,height,cl);  
              shapes.add(pe);  

                  
                       }catch(Exception e){  
                        e.printStackTrace();  
                         }  
            }  
        }});  
        th.start();  
        }          
    }  
}  


Related articles: