private void drawItems(Graphics2D g)
    {
        for(int i = 0; i < Items.size(); i++)
        {
            ListviewItem item = this.Items.get(i);
            BufferedImage itemImage = new BufferedImage(this.getSize().getWidth() -10, 64, BufferedImage.TYPE_INT_ARGB);
            Graphics2D g2d = (Graphics2D) itemImage.getGraphics();

            // Background
            if(this.ItemBackgroundColor != null)
            {
                g2d.setColor(this.ItemBackgroundColor);
                g2d.fillRect(0,0, this.getSize().getWidth() -10, 64);
            }

            // Border
            if (this.ItemBorderColor != null)
            {
                g2d.setColor(this.ItemBorderColor);
                g2d.drawRect(0,0,this.getSize().getWidth() -11 ,63);
            }

            // Item Image
            if(item.getItemImage() != null)
            {
                g2d.drawImage(item.getItemImage(), 2, 2, 60, 60, null);
            }
            if(this.getForegroundColor() != null && this.getFont() != null)
            {
                // Item Text
                if(item.getText() != null)
                {
                    g2d.setColor(this.getForegroundColor());
                    g2d.setFont(new Font(this.getFont().getFontName(), java.awt.Font.BOLD, this.getFont().getSize()));
                    g2d.drawString(item.getText(), 64, 15);
                }

                // Item Description
                if(item.getDescryption() != null)
                {
                    g2d.setColor(this.getForegroundColor());
                    g2d.setFont(this.getFont());
                    g2d.drawString(item.getDescryption(), 64, 30);
                }
            }

            g.drawImage(itemImage, 0, i * 64, this.getSize().getWidth() -10, 64, null);
        }
    }