private void create(Color bg, String title, String initialFont, int initialSize, final Color initialColor, boolean bold,
            boolean underline, boolean shadow) {
        setPreferredSize(new Dimension(GUIConstants.DEFAULT_FIELD_WIDTH, FIELDHEIGHT));
        setBackground(bg);
        setLayout(new VerticalLayout(5, VerticalLayout.CENTER));
        setBorder(BorderFactory.createTitledBorder(title));

        this.fontInputField = new JTextField(initialFont);
        this.fontInputField.setPreferredSize(GUIConstants.DEFAULT_BUTTON_DIM);
        this.fontInputField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                fontChosen(FontField.this.fontInputField.getText());
            }
        });
        this.add(this.fontInputField);

        JPanel sizePanel = new JPanel();
        sizePanel.setBackground(bg);

        JLabel sizeLbl = new JLabel(Field.strFontsizeLabel);
        sizeLbl.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
        sizeLbl.setBackground(bg);

        this.sizeInputField = new JTextField(NUMBERLENGTH + 1);
        this.sizeInputField.setText(initialSize + "");
        this.sizeInputField
        .setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(1, 0, 0, 0), this.sizeInputField.getBorder()));
        this.sizeInputField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                if (controlThicknessInput(FontField.this.sizeInputField, NUMBERLENGTH, false)) {
                    sizeTyped(FontField.this.sizeInputField.getText());

                } else {
                    sizeTyped(null);
                }
            }
        });

        sizePanel.add(sizeLbl);
        sizePanel.add(this.sizeInputField);
        this.add(sizePanel);

        this.colorBtn = new JButton(Field.strFontColorBtn);
        this.colorBtn.setBackground(bg);
        this.colorBtn.setFocusable(false);
        this.colorBtn.setForeground(initialColor);
        this.colorBtn.setMinimumSize(new Dimension(FONTCHOOSER_DIM.width / 2, 23));
        this.colorBtn.addMouseListener(new MouseAdapter() {
            private Color c = initialColor;

            @Override
            public void mousePressed(MouseEvent e) {
                this.c = ColorPicker.showDialog(this.c);
                if (this.c != null) {
                    colorBtnPressed(new int[] { this.c.getAlpha(), this.c.getRed(), this.c.getGreen(), this.c.getBlue() });
                    FontField.this.colorBtn.setForeground(this.c);
                }
            }
        });
        this.add(this.colorBtn);

        this.boldBtn = new JCheckBox(Field.strBoldBtn);
        this.boldBtn.setSelected(bold);
        this.boldBtn.setBackground(bg);
        this.boldBtn.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                boldPressed(!FontField.this.boldBtn.isSelected());
            }
        });
        this.add(this.boldBtn);

        this.underlineBtn = new JCheckBox(Field.strUnderlineBtn);
        this.underlineBtn.setSelected(underline);
        this.underlineBtn.setBackground(bg);
        this.underlineBtn.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                underlinePressed(!FontField.this.underlineBtn.isSelected());
            }
        });
        this.add(this.underlineBtn);

        this.shadowBtn = new JCheckBox(Field.strShadowBtn);
        this.shadowBtn.setSelected(shadow);
        this.shadowBtn.setBackground(bg);
        this.shadowBtn.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                shadowPressed(!FontField.this.shadowBtn.isSelected());
            }
        });
        this.add(this.shadowBtn);
    }