Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #5
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4
    codice:
    public class Test0001 {
    
        /**
      * @param args
      */
        public static void main(String[] args) {
      
      Pixel pix = new Pixel(10, 10, 10, 10, Color.WHITE);
      
       Icon icon = new Icon();
      
       JMenuBar bar = new JMenuBar();
       MenuSize menuSize = new MenuSize(); 
       ToolsMenu tools = new ToolsMenu(icon);
       MenuColor colors = new MenuColor();
      IconPanel panel = new IconPanel(icon);
      IconController controller = new IconController(icon);
      
      controller.setPanel(panel);
      controller.setTools(tools);
      controller.setColors(colors);
      controller.setSizes(menuSize);
      
      panel.addMouseListener(controller);
      colors.addActionListener(controller);
      colors.getRed().addActionListener(controller);
      colors.getGreen().addActionListener(controller);
      colors.getBlue().addActionListener(controller);
      tools.addActionListener(controller);
      menuSize.getSize1().addActionListener(controller);
      menuSize.getSize2().addActionListener(controller);
      menuSize.getSize3().addActionListener(controller);
        
      
      icon.setPixels(pix);
      
      icon.addObserver(panel);
      bar.setSize(10000, 20);
      bar.add(menuSize);
      bar.add(tools);
      bar.add(colors);
      
      
      JFrame frame = new JFrame("Pixel");
      frame.setSize(400, 400);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      //panel.add(bar);
            frame.getContentPane().add(bar,BorderLayout.NORTH);
      frame.getContentPane().add(panel, BorderLayout.CENTER);
      //frame.getContentPane().add(panel1);
      frame.setVisible(true);
        }
    
    }
    
    public class IconPanel extends JPanel implements Observer {
        
        /**
      * 
      */
        private static final long serialVersionUID = 1L;
        //private Pixel pixel;
        private Icon icon;
        
        public IconPanel(Icon icon) {
      super();
      //this.pixel = pixel;
      this.icon = icon;
      icon.update();
        }
    
        public void setIcon(Icon icon) {
      this.icon = icon;
        }
        
        @Override
        public void paintComponent(Graphics g) {
      super.paintComponent(g);
      
      for(int i = 0; i<icon.getSize(); i++){
       for(int j = 0; j<icon.getSize(); j++){
    
        icon.getPixels()[i][j].draw(g);
        
       }
      }
      
        }
    
        @Override
        public void update(Observable o, Object arg) {
      repaint();
      
        }
        
    }
    
    public class ToolsMenu extends JMenu {
        private Icon icon;
        private Colorable tool;
        private JMenuItem pencil = new JMenuItem("Pencil");
        private JMenuItem rubber = new JMenuItem("Rubber");
        
        public ToolsMenu(final Icon icon) {
            super();
            this.icon = icon;
            this.setText("Tools");
            pencil.addActionListener(new ActionListener() {
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    
                tool = new Pencil(Color.ORANGE);
                
    
    
                }
            });
            this.add(pencil);
            rubber.addActionListener(new ActionListener() {
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    tool = new Rubber();
                    
                }
            });
            this.add(rubber);
        }
    
    
        public Colorable getTool() {
            return tool;
        }
    }
    
    public class ToolColor implements Colorable{
    
    
        private Color color;
    
    
        public ToolColor() {
            super();
        }
    
    
        @Override
        public void setColor(Color color) {
            this.color = color;
        }
    
    
        @Override
        public Color getColor() {
            return color;
        }
    
    
    }
    
    public class Rubber  extends ToolColor {
    
    
        
        public Rubber() {
            super();
            this.setColor(Color.WHITE);
        }
        
    //    @Override
    //    public void setColor(Color color) {
    //        
    //    this.color = color.WHITE;
    //    }
    //
    //    @Override
    //    public Color getColor() {
    //        
    //        return color;
    //    }
    
    public class Pixel {
        
        private int x ;
        private int y;
        private int width;
        private int height;
        private Color color;
        
        public Pixel(int x, int y, int width, int height, Color color) {
            super();
            this.x = x;
            this.y = y;
            this.width = width;
            this.height = height;
            this.color = color;
        }
        
        public void draw(Graphics graphics){
            graphics.setColor(color);
            graphics.fillRect(x, y, width, height);
            
            
        }
    
    
        public void setColor(Color color) {
            this.color = color;
        }
        public Color getColor() {
            return color;
        }
        
        public void setX(int x) {
            this.x = x;
        }
        public int getX() {
            return x;
        }
        
        public void setY(int y) {
            this.y = y;
        }
        public int getY() {
            return y;
        }
        public void setWidth(int width) {
            this.width = width;
        }
        public int getWidth() {
            return width;
        }
        public void setHeight(int height) {
            this.height = height;
        }
        public int getHeight() {
            return height;
        }
    
    
    }
    public class Pencil extends ToolColor   {
    
    
        
        
        public Pencil(Color color ) {
            super();
            this.setColor(color);
            
        }
    
    
    //    @Override
    //    public void setColor(Color color) {
    //        this.color = color;
    //        
    //    }
    //
    //    @Override
    //    public Color getColor() {
    //        return color;
    //    }
    
    public class MenuSize extends JMenu {
    
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private JMenuItem size1 = new JMenuItem("16X16");
        private JMenuItem size2 = new JMenuItem("24X24");
        private JMenuItem size3 = new JMenuItem("32X32");
        
        public MenuSize() {
            super();
            this.setText("Size");
            
            add(size1);
            add(size2);
            add(size3);
            
        }
        
        public JMenuItem getSize1() {
            return size1;
        }
        public JMenuItem getSize2() {
            return size2;
        }
        public JMenuItem getSize3() {
            return size3;
        }
    }
    
    public class MenuColor extends JMenu {
        
    
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private JMenuItem red = new JMenuItem("Red");
        private JMenuItem green = new JMenuItem("Green");
        private JMenuItem blue = new JMenuItem("Blue");
        
        public MenuColor() {
            this.setText("Colors");
            this.add(red);
            
    
    
            this.add(green);
            
    
    
            this.add(blue);
        }
        
        
        public JMenuItem getRed() {
            return red;
        }
        public JMenuItem getGreen() {
            return green;
        }
        public JMenuItem getBlue() {
            return blue;
        }
        
    }
    
    public class Icon extends Observable implements Observer {
        private static final int defaultSize = 32;
        private int size = defaultSize;
        
        
        
        private Pixel[][] pixels  ;
        
        
        public Icon() {
            super();
            
             pixels = new Pixel[size][size];
             
        }
            
        public void setSize(int size) {
            this.size = size;
        }
        
        public int getSize() {
            return size;
        }
        
        
        
        
        public void setPixels(Pixel pixel){
            int red = pixel.getColor().getRed();
            int green = pixel.getColor().getGreen();
            int blue = pixel.getColor().getBlue();
            
            int x = pixel.getX();
            int y = pixel.getY();
            int width = pixel.getWidth();
            int height = pixel.getHeight();
            
            for(int i = 0; i<size; i++){
                
                for(int j =0; j<size; j++){
                    
                    x = x+10;
                    
                    
                    pixels[i][j] = new Pixel(x, y, width, height,new Color(red, green,blue));
                }
                x = pixel.getX();
                y = y+10;
            }
                    
        }
        
    
    
        
        public Pixel[][] getPixels() {
            return pixels;
        }
        
        public void update(){
            setChanged();
            notifyObservers();
        }
    
    
    
    
        @Override
        public void update(Observable o, Object arg) {
         update();
        }
    
    
    }
    public interface Colorable {
    
    
        public void setColor(Color color);
    
    
        public Color getColor();
    
    
    }
    
    
    public class IconController implements ActionListener, MouseListener{
    
    
        private Icon icon;
        private IconPanel panel;
        private ToolsMenu tools;
        private MenuColor colors;
        private MenuSize sizes;
        
        public IconController(Icon icon) {
            super();
            this.icon = icon;
        }
        
        @Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource() == colors.getRed()){
                
                
               tools.getTool().setColor(Color.RED);
                
            }else if(e.getSource() == colors.getGreen()){
                tools.getTool().setColor(Color.GREEN);
                
            }else if(e.getSource() == colors.getBlue()){
                tools.getTool().setColor(Color.BLUE);
                
            }else if(e.getSource() == sizes.getSize1() ){
                icon.setSize(16);
            }else if(e.getSource() == sizes.getSize2()){
                icon.setSize(24);
            }else if(e.getSource() == sizes.getSize3()){
                icon.setSize(32);
                
            }
            icon.update();
        }
    
    
        @Override
        public void mouseClicked(MouseEvent e) {
            int x = (e.getX()/10)-2;
            int y = (e.getY()/10)-1;
            
            if(x>=0 && y>=0){
            icon.getPixels()[y][x].setColor(tools.getTool().getColor());
            icon.update();
            }else{;}
            
            
        }
    
    
        @Override
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
        @Override
        public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
        @Override
        public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
        @Override
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
        public void setPanel(IconPanel panel) {
            this.panel = panel;
        }
        public void setTools(ToolsMenu tools) {
            this.tools = tools;
        }
        public void setColors(MenuColor colors) {
            this.colors = colors;
        }
        public void setSizes(MenuSize sizes) {
            this.sizes = sizes;
        }
    }

    è un pò lungo lo so; ma ve ne sarei molto gratta se mi diceste che cosa ne pensate .
    Grazie in anticipo per il vostro aiuto.
    Ultima modifica di LeleFT; 16-06-2014 a 16:10 Motivo: Aggiunti i tag CODE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.