final JTabbedPane tabbedPane = new JTabbedPane();
final JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.RIGHT);
    public RenControlEditor() {        setTitle("RenControlEditor - 3rd Person");        setBounds(100, 100, 500, 375);        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        final JPanel panel = new JPanel();        panel.setLayout(new GridBagLayout());        final JPanel inputModePanel = new JPanel();        final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints();        gridBagConstraints_1.fill = GridBagConstraints.BOTH;        gridBagConstraints_1.weightx = .7;        gridBagConstraints_1.weighty = 0;        gridBagConstraints_1.insets = new Insets(4, 4, 0, 0);        gridBagConstraints_1.anchor = GridBagConstraints.NORTHWEST;        gridBagConstraints_1.gridx = 0;        gridBagConstraints_1.gridy = 0;        panel.add(inputModePanel, gridBagConstraints_1);        final FlowLayout flowLayout_1 = new FlowLayout();        flowLayout_1.setVgap(0);        inputModePanel.setLayout(flowLayout_1);        inputModePanel.setBorder(new TitledBorder(null, "Input", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));        final JRadioButton mousekeyboardRadioButton = new JRadioButton();        mousekeyboardRadioButton.setSelected(true);        mousekeyboardRadioButton.setText("Mouse/Keyboard");        inputModePanel.add(mousekeyboardRadioButton);        final JRadioButton gameControllerRadioButton = new JRadioButton();        gameControllerRadioButton.setText("Game Controller");        inputModePanel.add(gameControllerRadioButton);        final JPanel testPanel = new JPanel();        testPanel.setMinimumSize(new Dimension(100, 100));        final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints();        gridBagConstraints_2.anchor = GridBagConstraints.NORTHWEST;        gridBagConstraints_2.fill = GridBagConstraints.BOTH;        gridBagConstraints_2.weighty = 1.0;        gridBagConstraints_2.weightx = .7;        gridBagConstraints_2.gridx = 0;        gridBagConstraints_2.gridy = 1;        panel.add(testPanel, gridBagConstraints_2);        testPanel.setLayout(new BorderLayout());        testPanel.add(getGlCanvas(), BorderLayout.CENTER);        testPanel.setBorder(new TitledBorder(null, "Test Here", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));        final JTabbedPane tabbedPane = new JTabbedPane();        final GridBagConstraints gridBagConstraints_3 = new GridBagConstraints();        gridBagConstraints_3.anchor = GridBagConstraints.NORTHWEST;        gridBagConstraints_3.fill = GridBagConstraints.BOTH;        gridBagConstraints_3.weightx = .3;        gridBagConstraints_3.weighty = 1.0;        gridBagConstraints_3.insets = new Insets(4, 4, 0, 4);        gridBagConstraints_3.gridheight = 2;        gridBagConstraints_3.gridx = 1;        gridBagConstraints_3.gridy = 0;        panel.add(tabbedPane, gridBagConstraints_3);        tabbedPane.setMinimumSize(new Dimension(200, 100));        tabbedPane.setPreferredSize(new Dimension(200, 100));        tabbedPane.setBorder(new TitledBorder(null, "Params", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));        tabbedPane.setTabPlacement(SwingConstants.RIGHT);        final JPanel panel_3 = new JPanel();        panel_3.setLayout(new GridBagLayout());        VTextIcon icon1 = new VTextIcon(tabbedPane, "Camera");        tabbedPane.addTab(null, icon1, panel_3, null);        final JLabel maxAscentLabel = new JLabel();        maxAscentLabel.setText("Max ascent:");        final GridBagConstraints gridBagConstraints_4 = new GridBagConstraints();        gridBagConstraints_4.gridy = 0;        gridBagConstraints_4.gridx = 0;        panel_3.add(maxAscentLabel, gridBagConstraints_4);        ascentSpinner = new JSpinner();        ascentSpinner.addChangeListener(new ChangeListener() {            public void stateChanged(ChangeEvent e) {                System.err.println("hi!" +ascentSpinner.getValue());            }        });        final GridBagConstraints gridBagConstraints_5 = new GridBagConstraints();        gridBagConstraints_5.fill = GridBagConstraints.HORIZONTAL;        gridBagConstraints_5.gridy = 1;        gridBagConstraints_5.gridx = 0;        panel_3.add(ascentSpinner, gridBagConstraints_5);        final JLabel oLabel = new JLabel();        oLabel.setFont(new Font("", Font.PLAIN, 9));        final GridBagConstraints gridBagConstraints_8 = new GridBagConstraints();        gridBagConstraints_8.anchor = GridBagConstraints.NORTH;        gridBagConstraints_8.gridy = 1;        gridBagConstraints_8.gridx = 1;        panel_3.add(oLabel, gridBagConstraints_8);        oLabel.setText("o");        final JLabel minRollinLabel = new JLabel();        minRollinLabel.setText("Min Rollin:");        final GridBagConstraints gridBagConstraints_6 = new GridBagConstraints();        gridBagConstraints_6.gridy = 2;        gridBagConstraints_6.gridx = 0;        panel_3.add(minRollinLabel, gridBagConstraints_6);        minRollSpinner = new JSpinner();        final GridBagConstraints gridBagConstraints_7 = new GridBagConstraints();        gridBagConstraints_7.fill = GridBagConstraints.HORIZONTAL;        gridBagConstraints_7.gridy = 3;        gridBagConstraints_7.gridx = 0;        panel_3.add(minRollSpinner, gridBagConstraints_7);        final JLabel maxRollinLabel = new JLabel();        maxRollinLabel.setText("Max Rollin:");        final GridBagConstraints gridBagConstraints_9 = new GridBagConstraints();        gridBagConstraints_9.gridy = 4;        gridBagConstraints_9.gridx = 0;        panel_3.add(maxRollinLabel, gridBagConstraints_9);        maxRollSpinner = new JSpinner();        final GridBagConstraints gridBagConstraints_10 = new GridBagConstraints();        gridBagConstraints_10.fill = GridBagConstraints.HORIZONTAL;        gridBagConstraints_10.gridy = 5;        gridBagConstraints_10.gridx = 0;        panel_3.add(maxRollSpinner, gridBagConstraints_10);        final JPanel panel_4 = new JPanel();        VTextIcon icon2 = new VTextIcon(tabbedPane, "Springs");        tabbedPane.addTab(null, icon2, panel_4, null);        final JPanel panel_5 = new JPanel();        VTextIcon icon3 = new VTextIcon(tabbedPane, "Movement");        tabbedPane.addTab(null, icon3, panel_5, null);        final JPanel panel_6 = new JPanel();        VTextIcon icon4 = new VTextIcon(tabbedPane, "Samples");        tabbedPane.addTab(null, icon4, panel_6, null);        final JPanel panel_7 = new JPanel();        VTextIcon icon5 = new VTextIcon(tabbedPane, "Code");        tabbedPane.addTab(null, icon5, panel_7, null);        final JPanel statPanel = new JPanel();        final GridBagConstraints gridBagConstraints_11 = new GridBagConstraints();        gridBagConstraints_11.anchor = GridBagConstraints.NORTHWEST;        gridBagConstraints_11.gridwidth = 2;        gridBagConstraints_11.weightx = 1.0;        gridBagConstraints_11.fill = GridBagConstraints.BOTH;        gridBagConstraints_11.gridx = 0;        gridBagConstraints_11.gridy = 2;        panel.add(statPanel, gridBagConstraints_11);        final FlowLayout flowLayout = new FlowLayout();        flowLayout.setHgap(2);        flowLayout.setVgap(2);        flowLayout.setAlignment(FlowLayout.LEFT);        statPanel.setLayout(flowLayout);        final JLabel hitescToLabel = new JLabel();        hitescToLabel.setText("Click and drag in the Test area to control.  WASD controls target.");        statPanel.add(hitescToLabel);                final JScrollPane scrollPane = new JScrollPane(panel);        getContentPane().add(scrollPane, BorderLayout.CENTER);        // center the frame        setLocationRelativeTo(null);        // show frame        setVisible(true);        while (glCanvas == null || impl.startTime == 0) ;        // MAKE SURE YOU REPAINT SOMEHOW OR YOU WON'T SEE THE UPDATES...        new Thread() {            { setDaemon(true); }            public void run() {                while (true) {                    glCanvas.repaint();                    yield();                }            }        }.start();        // event test - does print event only        MouseInput.get().addListener( new MouseInputListener() {            public void onButton( int button, boolean pressed, int x, int y ) {                System.out.println( "button " + button + " " + (pressed?"pressed":"released") );            }            public void onWheel( int wheelDelta, int x, int y ) {                System.out.println( "wheel scrolled " + wheelDelta );            }            public void onMove( int xDelta, int yDelta, int newX, int newY ) {                System.out.println( "mouse moved by ("+xDelta+";"+yDelta+")");            }        } );        // force a resize to ensure proper canvas size.        glCanvas.setSize(glCanvas.getWidth(), glCanvas.getHeight()+1);        glCanvas.setSize(glCanvas.getWidth(), glCanvas.getHeight()-1);    }