private void initialize(){
        frame.setTitle("Learn-Words");
        frame.setIconImage(MAIN_ICON.getImage());
        frame.setSize(WINDOW_SIZE);
//        setResizable(false);
        frame.setMinimumSize(MIN_WINDOW_SIZE);
        frame.setLocation((int) (SCREEN_SIZE.getWidth() / 2 - frame.getWidth() / 2),
                (int) (SCREEN_SIZE.getHeight() / 2 - frame.getHeight() / 2));

        frame.setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE);

        frame.getContentPane().setLayout(null);
        LayoutManager layout = frame.getContentPane().getLayout();
        BorderLayout bl = new BorderLayout();
        bl.setVgap(1);
        frame.getContentPane().setLayout(bl);


        mainPanel = new JPanel(layout);
        repetPanel = new JPanel(layout);

        repetitionWords = new ArrayList<Word>();


        initStatusBar();
        initButton();
        initMenuBar();
        initTextArea();
        initTextField();
        initProgressBar();
        initLabel();

        mainPane = new JTabbedPane();
        mainPane.addTab(TAB_MAIN, mainPanel);
        mainPane.addTab(TAB_REPETITION, repetPanel);
        frame.add(mainPane, BorderLayout.CENTER);
        frame.addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                super.componentResized(e);

                bCancel.setLocation(frame.getWidth() - bCancel.getWidth() - 20, frame.getHeight() - 90);
                menu.setBounds(0, 0, frame.getWidth(), 25);
                scrollPaneQuestion.setBounds(10, 55, frame.getWidth() - 30, 50);
                answer.setBounds(scrollPaneQuestion.getX(),
                        scrollPaneQuestion.getHeight() + scrollPaneQuestion.getY() + 10,
                        scrollPaneQuestion.getWidth(), 25);
                progressBar.setLocation(answer.getX(), answer.getY() + answer.getHeight() + 20);

//                bAddToRepetition.setLocation(progressBar.getX() + progressBar.getWidth() + 20, progressBar.getY());

                bNext.setLocation(frame.getWidth() - bCancel.getWidth() - 20, progressBar.getY());
                bAnswer.setLocation(bNext.getX(), bNext.getY() + 30);

                totalQuestions.setLocation(answer.getX(), progressBar.getY() + progressBar.getHeight() + 20);
                numberTotQuestions.setLocation(totalQuestions.getX() + totalQuestions.getWidth(),
                        totalQuestions.getY());
                currentQuestions.setLocation(totalQuestions.getX(), totalQuestions.getY() + totalQuestions.getHeight() + 10);
                numberOfCurQuestion.setLocation(currentQuestions.getX() + currentQuestions.getWidth(),
                        currentQuestions.getY());
                totalRepetitions.setLocation(currentQuestions.getX(), currentQuestions.getY() + currentQuestions.getHeight() + 10);
                numberTotRepetitions.setLocation(totalRepetitions.getX() + totalRepetitions.getWidth(),
                        totalRepetitions.getY());


            }
        });

        mainPane.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                try{
                    JTabbedPane sourceTabbedPane = (JTabbedPane) e.getSource();
                    tabIndex = sourceTabbedPane.getSelectedIndex();
                    setQuestion();
                }catch(RuntimeException ex){
                    /* Does nothing */
                }
            }
        });
    }