private void initComponents() {
        saveButton = new JButton(rh.getString(PROPERTY_NAME, BUTTON_SAVE));
        saveButton.addActionListener(this);
        saveButton.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {
                if (e.getKeyChar() == KeyEvent.VK_ENTER) close();
//                else if (e.getKeyChar() == KeyEvent.VK_SPACE) close();
            }
        });
        saveButton.setActionCommand(SAVE);
        saveButton.setEnabled(false);

        antwortPanel = getAntwortPanel(this);
        antwortPanel.addPropertyChangeListener(this);

        labelTitle = new JLabel(fragebogen.getTitle());
        Font font = labelTitle.getFont().deriveFont(Font.PLAIN, 21);
        labelTitle.setFont(font);

        // if Kandidat has given answer, don't add him to the list of objects
        ArrayList<Kandidat> objects = new ArrayList<Kandidat>();
        ArrayList<Kandidat> vKandidat = frame.getKandidatPanel().getKandidatTable().getModel().getItems();
        Kandidat kandidat = null;
        Iterator<Kandidat> iterKandidat = vKandidat.iterator();
        while (iterKandidat.hasNext()) {
            boolean bFound = false;
            kandidat = iterKandidat.next();
            Enumeration enumFragebogen = ((DefaultListModel) frame.getFragebogenPanel().getFragebogenList().getModel()).elements();
            while (enumFragebogen.hasMoreElements()) {
                Fragebogen fb = (Fragebogen) enumFragebogen.nextElement();
                Iterator<Antwort> iter = fb.getAntworten().iterator();
                while (iter.hasNext()) {
                    String name = iter.next().getKandidatName();
                    if (name.equals(kandidat.getTitleAndName())) {
                        bFound = true;
                        break;
                    }
                }
                if (bFound)
                  break;
            }
            if (!bFound)
                objects.add(kandidat);
        }

        tfName = new FilterKandidatTable(frame, objects);
        tfName.setSelectionColor(selectedTextForeground);
        tfName.setBorder(new LineBorder(Color.black));
        tfName.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {
                if (e.getKeyChar() == KeyEvent.VK_ESCAPE) {
                    reset();
                    dispose();
                }
            }
        });
        tfName.requestFocus();

        if (antwort != null) {
            objects.add(antwort.getKandidat());
            tfName.setEnabled(false);
            tfName.setText(antwort.getKandidat().getTitleAndName());
        }

        dataset = new DefaultPieDataset();
        dataset.setValue(WRONG, 100);
        dataset.setValue(CORRECT, 0);
        chart = ChartFactory.createPieChart("", dataset, true, false, false);
        chart.setTitle("0%");
        PiePlot plot = (PiePlot) chart.getPlot();
        plot.setForegroundAlpha(0.7f);
        plot.setSectionPaint(WRONG, Color.red);
        plot.setSectionPaint(CORRECT, Color.green);
        chartPanel = new ChartPanel(chart);
        chartPanel.setOpaque(true);
        chartPanel.setBorder(BorderFactory.createLineBorder(Color.black));
        chartPanel.setPreferredSize(new Dimension(200, 200));
    }