Assistance in Swing

I've been working on a launcher for my game using swing and I created it to work off of a compilation of other codes however i want to separate the DisplayMode comboBox into 3 seperate boxs Resolution, RefreshRate and Graphics(Depth(no 8bit. Display 16 as low, 24 as Medium and 32 as high and maybe 64 if its supported)) however i've been unable to figure out how do this. I can only get displaymode to show all the values but i guess thats' becuz thats the way the class was set up. So i tracked back to GameSettingsPanel and attempted to borrow code from their however i can get it up to the point where it displays the different resolution values in the class but i'm unable to set the settings to the selected value when i run the launcher can anyone assist me I've been trying for several days but yield no results.



Also i'm unable to display the previous value chosen it resets to the last value in the box changing the values back to default each time the application is ran





gd = GraphicsDevice

JLabel selectLb = new JLabel("Display Mode: ");

        c.fill = GridBagConstraints.HORIZONTAL;
        c.gridx = 0;
        c.gridy = 0;
        graphicsPa.add(selectLb, c);

        //SETUP GRAPHICS PANEL
        //setup up display modes
        JComboBox listCb = new JComboBox();
        listCb.setSize(60, 20);
        listCb.setPreferredSize(new Dimension(150, 20));

        DisplayMode displays[] = gd.getDisplayModes();
        for (int i = 0; i < displays.length; i++) {
           listCb.addItem(new DisplayWrapper(displays[i]));
           
        }
     
        listCb.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                if (e.getItem() instanceof DisplayWrapper) {
                    DisplayMode mode = ((DisplayWrapper) e.getItem()).mode;
                    settings.setDepth(mode.getBitDepth());
                    settings.setHeight(mode.getHeight());
                    settings.setWidth(mode.getWidth());
                    settings.setFrequency(mode.getRefreshRate());
                }
            }
        });

        listCb.setSelectedItem(new DisplayWrapper(gd.getDisplayMode()));
           
       
        c.insets = new Insets(0, 0, 0, 20);
        c.gridx = 1;
        graphicsPa.add(listCb, c);