auslesen mehrerer JComboBoxen funktioniert nicht

Maxi92

Aktives Mitglied
wie bereits im Titel erwähnt funktioniert bei mir das auslesen meiner ComboBoxen nicht!

der Fehler muss irgendwo am Anfang liegen wo ich die SelectedIndizes in mein int feld speichern möchte?
weiß nicht wieso aber ich hab ne java.lang.NullPointerException

Java:
    private void onBestaetigenMuDlg(java.awt.event.ActionEvent evt)                                    
    {                                        
        durchmesser[0] = cobØKMuDlg1.getSelectedIndex();
        durchmesser[1] = cobØKMuDlg2.getSelectedIndex();
        durchmesser[2] = cobØKMuDlg3.getSelectedIndex();
        durchmesser[3] = cobØKMuDlg4.getSelectedIndex();
        durchmesser[4] = cobØKMuDlg5.getSelectedIndex();
        durchmesser[5] = cobØKMuDlg6.getSelectedIndex();
        durchmesser[6] = cobØKMuDlg7.getSelectedIndex();
        durchmesser[7] = cobØKMuDlg8.getSelectedIndex();
        durchmesser[8] = cobØKMuDlg9.getSelectedIndex();
        durchmesser[9] = cobØKMuDlg10.getSelectedIndex();

        System.out.println(durchmesser[0]);
        
        for(int i = 0; i < 10; i++)
        {
            switch(durchmesser[i])
            {
                case 0: durchmesser[i] = 5;
                        break;
                case 1: durchmesser[i] = 10;
                        break;
                case 2: durchmesser[i] = 15;
                        break;
                case 3: durchmesser[i] = 20;
                        break;
                case 4: durchmesser[i] = 25;
                        break;
                case 5: durchmesser[i] = 30;
                        break;
                case 6: durchmesser[i] = 35;
                        break;
                case 7: durchmesser[i] = 40;
                        break;
                case 8: durchmesser[i] = 45;
                        break;
                case 9: durchmesser[i] = 50;
                        break;
                default:
                        break;
            }
            System.out.println(durchmesser[i]);
        }
    }

falls irgendwer auch eine bessere Lösung hat wie ich dem passenden Index den richtigen Wert zuweisen kann und das Ganze für 10 ComboBoxen wäre ich für Vorschläge sehr dankbar!
 
Fehler: durchmesser ist null oder eine der Box-Variablen

Vereinfachung:

for (i 0 bis 10)
durchmesser = box.getSelectedIndex();
}

mit entsprechenden box-Array

das switch danach ist auch nutzlos, einfach den Index * 5 rechnen, bzw. (index +1) * 5
 
Das mit der for-schleife wollt ich gleich machen aber ich weiß nicht, wie ich das mit dem box-Array mache das ich bei den ComboBoxen auch mit der zählvariable arbeiten kann?

hab auch schon gegoogelt aber nicht wirklich was verständliches gefunden....
 
mach einfach Copy-Paste, wo immer in deinem Programm cobØKMuDlg1 steht, schreibe stattdessen box[0], schon bezieht sich alles auf das Array,
das Array muss natürlich noch definiert werden,

am besten das Anlegen der Boxen und Einfügen in die GUI usw. dann auch mit Schleife 0-10,
 
ich hab meine ComboBoxen in die GUI gezogen also is des alles in den InitComponents() auch des auffüllen is in denen.

Java:
 private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;

        jScrollPane1 = new javax.swing.JScrollPane();
        jPanel1 = new javax.swing.JPanel();
        paKanonenMuDlg13 = new javax.swing.JPanel();
        paKMuDlg1 = new javax.swing.JPanel();
        lbØKMuDlg1 = new javax.swing.JLabel();
        cobØKMuDlg1 = new javax.swing.JComboBox();
        paKMuDlg2 = new javax.swing.JPanel();
        lbØKMuDlg2 = new javax.swing.JLabel();
        cobØKMuDlg2 = new javax.swing.JComboBox();
        paKMuDlg3 = new javax.swing.JPanel();
        lbØKMuDlg3 = new javax.swing.JLabel();
        cobØKMuDlg3 = new javax.swing.JComboBox();
        paKanonenMuDlg47 = new javax.swing.JPanel();
        paKMuDlg4 = new javax.swing.JPanel();
        lbØKMuDlg4 = new javax.swing.JLabel();
        cobØKMuDlg4 = new javax.swing.JComboBox();
        paKMuDlg5 = new javax.swing.JPanel();
        lbØKMuDlg5 = new javax.swing.JLabel();
        cobØKMuDlg5 = new javax.swing.JComboBox();
        paKMuDlg6 = new javax.swing.JPanel();
        lbØKMuDlg6 = new javax.swing.JLabel();
        cobØKMuDlg6 = new javax.swing.JComboBox();
        paKMuDlg7 = new javax.swing.JPanel();
        lbØKMuDlg7 = new javax.swing.JLabel();
        cobØKMuDlg7 = new javax.swing.JComboBox();
        paKanonenMuDlg810 = new javax.swing.JPanel();
        paKMuDlg8 = new javax.swing.JPanel();
        lbØKMuDlg8 = new javax.swing.JLabel();
        cobØKMuDlg8 = new javax.swing.JComboBox();
        paKMuDlg9 = new javax.swing.JPanel();
        lbØKMuDlg9 = new javax.swing.JLabel();
        cobØKMuDlg9 = new javax.swing.JComboBox();
        paKMuDlg10 = new javax.swing.JPanel();
        lbØKMuDlg10 = new javax.swing.JLabel();
        cobØKMuDlg10 = new javax.swing.JComboBox();
        paAktionADlg = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        btOkMuDlg = new javax.swing.JButton();
        btAbbrechenMuDlg = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Einstellen des Munitionsdurchmesser");

        jPanel1.setLayout(new java.awt.GridBagLayout());

        paKanonenMuDlg13.setLayout(new java.awt.GridLayout(1, 0, 5, 0));

        paKMuDlg1.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 1"));
        paKMuDlg1.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg1.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg1.add(lbØKMuDlg1, gridBagConstraints);

        cobØKMuDlg1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg1.add(cobØKMuDlg1, gridBagConstraints);

        paKanonenMuDlg13.add(paKMuDlg1);

        paKMuDlg2.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 2"));
        paKMuDlg2.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg2.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg2.add(lbØKMuDlg2, gridBagConstraints);

        cobØKMuDlg2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg2.add(cobØKMuDlg2, gridBagConstraints);

        paKanonenMuDlg13.add(paKMuDlg2);

        paKMuDlg3.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 3"));
        paKMuDlg3.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg3.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg3.add(lbØKMuDlg3, gridBagConstraints);

        cobØKMuDlg3.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg3.add(cobØKMuDlg3, gridBagConstraints);

        paKanonenMuDlg13.add(paKMuDlg3);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
        gridBagConstraints.insets = new java.awt.Insets(10, 0, 10, 0);
        jPanel1.add(paKanonenMuDlg13, gridBagConstraints);

        paKanonenMuDlg47.setLayout(new java.awt.GridLayout(1, 0, 5, 0));

        paKMuDlg4.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 4"));
        paKMuDlg4.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg4.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg4.add(lbØKMuDlg4, gridBagConstraints);

        cobØKMuDlg4.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg4.add(cobØKMuDlg4, gridBagConstraints);

        paKanonenMuDlg47.add(paKMuDlg4);

        paKMuDlg5.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 5"));
        paKMuDlg5.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg5.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg5.add(lbØKMuDlg5, gridBagConstraints);

        cobØKMuDlg5.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg5.add(cobØKMuDlg5, gridBagConstraints);

        paKanonenMuDlg47.add(paKMuDlg5);

        paKMuDlg6.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 6"));
        paKMuDlg6.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg6.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg6.add(lbØKMuDlg6, gridBagConstraints);

        cobØKMuDlg6.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg6.add(cobØKMuDlg6, gridBagConstraints);

        paKanonenMuDlg47.add(paKMuDlg6);

        paKMuDlg7.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 7"));
        paKMuDlg7.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg7.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg7.add(lbØKMuDlg7, gridBagConstraints);

        cobØKMuDlg7.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg7.add(cobØKMuDlg7, gridBagConstraints);

        paKanonenMuDlg47.add(paKMuDlg7);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.insets = new java.awt.Insets(5, 10, 5, 10);
        jPanel1.add(paKanonenMuDlg47, gridBagConstraints);

        paKanonenMuDlg810.setLayout(new java.awt.GridLayout(1, 0, 5, 0));

        paKMuDlg8.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 8"));
        paKMuDlg8.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg8.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg8.add(lbØKMuDlg8, gridBagConstraints);

        cobØKMuDlg8.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg8.add(cobØKMuDlg8, gridBagConstraints);

        paKanonenMuDlg810.add(paKMuDlg8);

        paKMuDlg9.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 9"));
        paKMuDlg9.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg9.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg9.add(lbØKMuDlg9, gridBagConstraints);

        cobØKMuDlg9.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg9.add(cobØKMuDlg9, gridBagConstraints);

        paKanonenMuDlg810.add(paKMuDlg9);

        paKMuDlg10.setBorder(javax.swing.BorderFactory.createTitledBorder("Kanone 10"));
        paKMuDlg10.setLayout(new java.awt.GridBagLayout());

        lbØKMuDlg10.setText("Ø [mm]");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg10.add(lbØKMuDlg10, gridBagConstraints);

        cobØKMuDlg10.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "30", "35", "40", "45", "50" }));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);
        paKMuDlg10.add(cobØKMuDlg10, gridBagConstraints);

        paKanonenMuDlg810.add(paKMuDlg10);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.insets = new java.awt.Insets(10, 0, 10, 0);
        jPanel1.add(paKanonenMuDlg810, gridBagConstraints);

        paAktionADlg.setLayout(new java.awt.GridBagLayout());

        jPanel3.setLayout(new java.awt.GridLayout(1, 0, 10, 0));

        btOkMuDlg.setText("Bestätigen");
        btOkMuDlg.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                onBestaetigenMuDlg(evt);
            }
        });
        jPanel3.add(btOkMuDlg);

        btAbbrechenMuDlg.setText("Abbrechen");
        btAbbrechenMuDlg.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                onAbbrechenMuDlg(evt);
            }
        });
        jPanel3.add(btAbbrechenMuDlg);

        paAktionADlg.add(jPanel3, new java.awt.GridBagConstraints());

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        jPanel1.add(paAktionADlg, gridBagConstraints);

        jScrollPane1.setViewportView(jPanel1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>

muss ich jetzt überall, also auch in den initComponents() machen das ich alle zb: cobØKMuDlg1 mit box[0] ersetze?

mit welchem Datentyp muss ich das Array definieren?

Java:
public int box[]
???
 
den Code hast du nicht selber programmiert sondern per GUI-Builder oder?
dann solltest du den besser auch nicht verändern,

in jedem Fall halte ich es für aussichtlos, in dieser Situation jetzt anzufangen, alle Array-Grundlagen zu erklären,
das kannst du in jedem Buch in einem der ersten Kapitel nachlesen (hunderte Seiten und Wochen, bevor GUI drankommt)
 
hab ja gesagt das ichs nur in die GUI gezogen hab also per GUI builder...

ich kenn mich grundsätzlich aus mit Feldern ich weiß nur nicht wie ich die einzelnen ComboBoxen dem
box - Array zuweis.... und irgendwo muss is dem ja zuweisen sonst kann er ja net wissen das ich die ComboBox cobØKMuDlg1 meine wenn ich box[0] schreibe...
 
danke! das is genau des was ich wissen wollt...welchen typ das feld haben muss...
hab nämlich bisher noch nie mit ComboBoxen gearbeitet...
 

Zurück
Oben