public CodeEditor() 
    {       
        Font f;
        JScrollPane []scrollPane;
        JSplitPane componentSplitter ;
        LineBar line;
        Data data;
        
        modifyLooks();
        jlblStatus = new JLabel();
        jta = (JTextArea) new TextArea();
        lineBar = new LineBar();
        outputWindow = new TextArea();
        menuBar = (Menu)new Menu(this);  
        jFileChooser = new JFileChooser(new File("."));
        classLoader = new ClassFileLoader();
        
        f = new Font("Courier", Font.PLAIN, 13);
        scrollPane  = new JScrollPane[2];
        for(int i=0; i<scrollPane.length; i++) scrollPane[i]= new JScrollPane();
        componentSplitter = new JSplitPane(JSplitPane.VERTICAL_SPLIT, scrollPane[0], scrollPane[1]);
        line = new LineBar();
        data = new Data();

        initJavaRunner();
        
        data.addObserver(line);
        line.setEditable(false);
        line.setBackground(Color.lightGray);
        jta.setFont(f);
        jta.setTabSize(4);
        jta.getDocument().addDocumentListener(data);
   
        line.setFont(f);
      
        scrollPane[0].setViewportView(jta);
        scrollPane[0].setRowHeaderView(line);
        scrollPane[1].setViewportView(outputWindow);
        
        componentSplitter.setDividerLocation(150);
        
        this.setJMenuBar(menuBar);
        this.add(componentSplitter, BorderLayout.CENTER);
        this.add(jlblStatus, BorderLayout.PAGE_END);
       
    }