@Override
    public void renderControl(Graphics2D g) {
        BufferedImage Control = new BufferedImage(this.getSize().getWidth(), this.getSize().getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = (Graphics2D) Control.getGraphics();

        if(this.getBackgroundColor() != null)
        {
            g2d.setColor(this.getBackgroundColor());
            g2d.fillRect(0,0,this.getSize().getWidth(), this.getSize().getHeight());
        }

        for(int i = 0; i < this.Matrix.size(); i++)
        {
            Rectangle rect = this.Matrix.get(i);

            if(!this.Toolitems.isEmpty() && i < this.Toolitems.size())
            {
                Item item = this.Toolitems.get(i);
                g2d.drawImage(item.getImage(),rect.x, rect.y, rect.width, rect.height, null);
            }

            if(this.BorderColor != null)
            {
                g2d.setColor(this.BorderColor);
                g2d.drawRect(rect.x, rect.y, rect.width -1, rect.height -1);
            }
        }

        g.drawImage(Control, this.getLocation().getX(), this.getLocation().getY(), this.getSize().getWidth(), this.getSize().getHeight(), null);

    }