Hinzufügen JList zu JPanel

Ich versuche, fügen Sie eine JList auf einem JPanel. Speziell, ich habe zwei JPanels, eine Rechte und eine linke. Das Recht hat man zwei Tasten. Auf der linken Seite möchte ich die JList mySpriteOptions (siehe code unten). Leider, wenn ich meinen code, dieser JList nie auftaucht. Ich bin kein swing-Experte (eigentlich bin ich ein großer Anfänger), so dass ich kann nicht herausfinden, warum das so ist.

Hier ist mein code:

    import java.awt.*;
    import java.swing.*


    public class SpriteEditorLauncher extends JFrame {

    private JLabel mySearchBoxLabel;
    private JList mySpriteOptions;
    private JPanel myLeft;
    private JPanel myRight;
    private JScrollPane myScrollPane;
    private JTextField mySearchBox;
    private JButton myNewEditLauncher;
    private JButton myEditLauncher;

    private static final long serialVersionUID = 1L;
    private static final String FONT_TYPE = "Times New Roman";
    private static final int FONT_SIZE = 12;
    private static final int FONT_STYLE = 1;
    private static final Font FONT = new Font(FONT_TYPE, FONT_STYLE, FONT_SIZE);
    private static final int NUMBER_OF_ROWS = 1;
    private static final int NUMBER_OF_COLUMNS = 2;
    private static final int FRAME_WIDTH = 600;
    private static final int FRAME_HEIGHT = 400;

    public SpriteEditorLauncher () {
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        initializeComponents();
        createLayout();
    }

    private void initializeComponents () {
        myLeft = new JPanel();
        myRight = new JPanel();
        myNewEditLauncher = new JButton();
        myEditLauncher = new JButton();
        myScrollPane = new JScrollPane();
        mySpriteOptions = new JList();
        mySearchBox = new JTextField();
        mySearchBoxLabel = new JLabel();

    }

    private void setPanelBorder (JPanel toSetBorderFor) {
        toSetBorderFor.setBorder(BorderFactory
                .createTitledBorder(null, "Options", TitledBorder.DEFAULT_JUSTIFICATION,
                                    TitledBorder.DEFAULT_POSITION, FONT));
    }

    private void setButtonLabel (JButton button, Font font, String label) {
        button.setFont(font);
        button.setText(label);
    }

    private void setFrameLayout () {
        GridLayout myLayout = new GridLayout(NUMBER_OF_ROWS, NUMBER_OF_COLUMNS);
        setLayout (myLayout);
        setPreferredSize(new Dimension(FRAME_WIDTH, FRAME_HEIGHT));
        setResizable(false);
    }

    private void addPanelsToFrame () {
        add(myLeft);
        add(myRight);
    }

    private void addButtonsToPanel (JPanel panel) {
        panel.add(myNewEditLauncher);
        panel.add(myEditLauncher);
    }



    private void createLayout () {

        setFrameLayout();
        setPanelBorder(myRight);
        setButtonLabel(myNewEditLauncher, FONT, "New");
        setButtonLabel(myEditLauncher, FONT, "Edit");

        addPanelsToFrame();

        addButtonsToPanel(myRight);



        mySpriteOptions.setModel(new AbstractListModel() {

            private static final long serialVersionUID = 1L;
            String[] strings = { "Item 1", "Item 2"};

            public int getSize () {
                return strings.length;
            }

            public Object getElementAt (int i) {
                return strings[i];
            }
        });

        myLeft.add(mySpriteOptions);

        myScrollPane.setViewportView(mySpriteOptions);

        mySearchBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed (ActionEvent arg0) {
                //TODO Auto-generated method stub

            }
        });

        mySearchBoxLabel.setFont(FONT);
        mySearchBoxLabel.setLabelFor(mySearchBox);
        mySearchBoxLabel.setText("Search:");

        pack();
        setVisible(true);
    }

}
InformationsquelleAutor covertbob | 2012-11-10
Schreibe einen Kommentar