@Override
    public void renderControl(Graphics2D g) {

        BufferedImage control = new BufferedImage(this.getSize().getWidth(), this.getSize().getHeight(), BufferedImage.TYPE_INT_ARGB);
        BufferedImage itemsImage = new BufferedImage(this.getSize().getWidth() -10, 64 * this.Items.size(), BufferedImage.TYPE_INT_ARGB);
        this.drawItems(itemsImage.createGraphics());
        Graphics2D g2d = (Graphics2D) control.getGraphics();

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

        // Border
        if(this.BorderColor != null)
        {
            g2d.setColor(this.BorderColor);
            g2d.drawRect(0,0,this.getSize().getWidth() -1,this.getSize().getHeight() -1);
        }

        // Scrollbar
        g2d.setColor(this.ScrollBarColor);
        g2d.fillRect(this.getSize().getWidth() - 10,0,10,this.getSize().getHeight());
        g2d.drawRect(this.getSize().getWidth() - 10,0, 9, this.getSize().getHeight() -1);

        // Scrollbutton Top
        Rectangle RectTop = new Rectangle(this.getSize().getWidth() - 10, 0, 10, 10);
        int ptX[] = {RectTop.x + 2, RectTop.x + 8, RectTop.x + 8};
        int ptY[] = {RectTop.y + 2, RectTop.y + 2, RectTop.y + 8};
        g2d.setColor(this.ScrollIconColor);
        g2d.fillPolygon(ptX, ptY, 3);

        // Scrollbutton bottom
        Rectangle RectBottom = new Rectangle(this.getSize().getWidth() - 10, this.getSize().getHeight() - 10, 10, 10);
        int pbX[] = {RectBottom.x + 2, RectBottom.x + 8, RectBottom.x + 8};
        int pbY[] = {RectBottom.y + 8, RectBottom.y + 8, RectBottom.y + 2};
        g2d.setColor(this.ScrollIconColor);
        g2d.fillPolygon(pbX, pbY, 3);

        // Items
        g2d.drawImage(itemsImage, 0, -this.ScrollYValue, this.getSize().getWidth() -10, 64 * this.Items.size(), null);


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