0

動的チェックボックスに問題があります。1 つ以上が選択されているときに、チェックボックス/チェックボックスの横にコンボボックスを表示したい。しかし、新しいチェックボックスを選択するたびに移動するコンボボックスは 1 つしかありません。では、何が問題なのか、複数のコンボボックスを取得する方法を教えてくれる人はいますか?

for(int i = 0; i < names.length; i++) {
        // ParameterField
        JTextField fieldParam = new JTextField();
        fieldParam.setText(names[i]);
        fieldParam.setEditable(false);
        addElement(contentPanel, fieldParam, 25, yPos, 100, 20);

        // ValueField
        JTextField fieldValue = new JTextField();
        fieldValue.setText("" + values[i]);
        fieldValue.setEditable(false);
        addElement(contentPanel, fieldValue, 160, yPos, 100, 20);

        //RadioButtonField          
        final JCheckBox checkboxes = new JCheckBox();
        checkboxes.setActionCommand(names[i]);
        checkboxes.addActionListener(this);
        addElement(contentPanel, checkboxes, 325, yPos, 100, 20);


        final int checkBoxIndex = i;
        checkboxes.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae2) {
                if (checkboxes.isSelected()) {
                    comboProcent.setEnabled(true);
                    comboProcent.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"2%", "5%", "10%"}));
                    addElement(contentPanel, comboProcent, 435, 50 + checkBoxIndex * 25, 80, 20);

                    setVisible(true);

                }

                    if (!checkboxes.isSelected()) {
                    contentPanel.remove(comboProcent);

                }

                System.out.println("checkbox is: " + checkBoxIndex);
            }
        });

        yPos = yPos + 25;
    }
4

2 に答える 2

1

チェックボックスごとに新しいコンボ ボックス インスタンスを作成する必要があります。チェックボックスの値がいつ変更されたかに基づいて、可視性を変更するのが最善の方法だと思います。(以前はこの方法でやってました)

于 2012-05-11T08:11:46.337 に答える
0

私が正しく理解したかどうかはわかりませんが、ダイナミックコンボボックスが必要な場合は、独自の ComboBoxModel を実装する必要があります。

于 2012-05-11T08:09:07.143 に答える