0

だから私は自分自身に挑戦し、簡単なワード プロセッサ アプリケーションを作成しようとしています。現在、キーボードをセットアップしていて、キーに問題があります。アルファベットの各文字を含む文字列配列があり、それらをボタンに配置したいと考えています。

私は現時点でこれを持っています:

    String FirstRow [] = {"q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m"};

    for(int i = 0; i < 40; i++)
    {
        if(i < 10)
        {
            JButton btn = new JButton();
            Nums.add(btn);
            btn.setText("" + Num);
            Num++;
        }
        else
        {       
            JButton btn1 = new JButton ();
            Nums.add(btn1);
            btn1.setText("" + FirstRow[n]);
            n++;
        }
    }

if ステートメントの else セクションがなければ、最初の行に数字を配置しても問題なく動作します。ただし、文字を配置しようとすると、範囲外の例外が発生し、これを修正する方法がわかりません。

4

3 に答える 3

2

配列には 26 個の要素しか含まれていませんが、ループは最大 39 個になります。したがって、for ループが 26 個に達すると (配列のインデックスはゼロになります)、ArrayIndexOutOfBoundsException が発生します。

于 2013-06-11T13:27:34.317 に答える
2

範囲外の例外は、配列が保持できるよりも大きいインデックスにアクセスしようとしていることを意味します。代わりに foreach を使用してみてください: Java の「for each」ループはどのように機能しますか?

または試してみてくださいfor(int i = 0; i < your_array.length; i++)

于 2013-06-11T13:28:43.850 に答える