0

ユーザーに 8*8 マトリックスから選択する選択肢を与えるプログラムを作成するつもりです。私の評判は 10 を下回っているため、画像を含めることはできませんが、通常の 8*8 マトリックスであることは間違いありません。Java プログラムで 8*8=64 のラジオ ボタンを使用して視覚化する予定です。ユーザーは一度に 1 つのラジオ ボタンしか選択できないため、64 個のボタンすべてが同じボタン グループに属することになります。

では、アクション リスナーを管理するにはどうすればよいでしょうか。64 個のラジオ ボタンのそれぞれに対して 64 個の個別のアクション リスナーを設定することは (本当に面倒で退屈です) 不可能です。64 個のラジオ ボタンはすべて同じボタン グループにあるため、イベント リスナーを1 つだけ設定して、どのボタンが選択されているかを確認する方法はありますか?

私の与えられた情報のいずれかが不明な場合は、私に知らせてください:)

PS : Netbeans 設計ツールを使用しています

4

3 に答える 3

1

次のような2 次元JRadioButton配列を作成します。

        JRadioButton[][] jRadioButtons = new JRadioButton[8][];
        ButtonGroup bg = new ButtonGroup();
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(8, 8));
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                JRadioButton btn = new JRadioButton();
                btn.addActionListener(listener);
                btn.setName("Btn[" + i + "," + j + "]");
                bg.add(btn);
                panel.add(btn);
                // can be used for other operations
                jRadioButtons[i][j] = btn;
            }
        }

ActionListenerここでは、すべての JRadioButton に対して単一です

    ActionListener listener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JRadioButton btn = (JRadioButton) e.getSource();
            System.out.println("Selected Button = " + btn.getName());
        }
    };
于 2013-07-15T11:46:05.373 に答える