0

スタック コミュニティの皆さん、こんにちは。私は、2D 配列に格納されたプロンプトとそれに対応する正しい応答をグラフィカルに表示するプログラムに取り組んでいます。メニュー オブジェクトの作成を呼び出すことから始めます。

    public static void main (String [] args){
    SwingUtilities.invokeLater(new Runnable(){
        public void run() { new Menu(); } 
    });
}

メニュー内で、さまざまなボタンを定義します。

JButton chem3Button, chin1Button, mathstatButton//etc...

続いて、ツールチップなどのプロパティの追加に続くアクション リスナーが続きます。

         mathstatButton.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent j) {
            new matstatMenu();
        }
     });

次に、制御を matstatMenu に渡します。これにより、Mathematics の領域を選択できるようになります。この場合は 1 つだけです。

         mathstatb1.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent l) {
            new SwingImplementation(2, 1);
        }});        

サブジェクト 2 (数学) とサブジェクト サブセット 1 (記述統計) を mathstatb1 ボタンを介して SwingImplementation に送信し、統計配列を oneRay にコピーするこのループを通過します。

        case 2:
        switch(unit){
        case 1: 
            oneRay = new String[Master.MathaRay_Part2.length][2];
           for(int i = 0; (Master.MathaRay_Part2.length) > i; i++){
               oneRay[i][0] = Master.MathaRay_Part2[i][0]; oneRay[i][1] = 

Master.MathaRay_Part2[i][1];} break;
        default: System.exit(0); break;
        } break;

この do ループは、配列 Master.MathaRay_Part2 がいっぱいで、上記のコードによって完全にコピーされる必要があるという事実にもかかわらず、無限に循環します。なぜこの do ループが失敗するのか、または終了しないのでしょうか?

    do{
        System.out.println("C");
        pick = random.nextInt(oneRay.length);
    }while((oneRay[pick][0]).isEmpty());

どうか、私は自分自身と学校の仲間を助けるためのプログラムを作成しようとしているスイング初心者です。どんな助けも大歓迎です。

4

1 に答える 1

0

あなたの問題が何であるかわかりません-私がそれを理解するのに十分なコードがここにありません; Master.MathaRay_Part2そして私はクラスについて何も知りません。ただし、次のことを行うと役立つはずです。また、結果を元の投稿に編集する場合に役立ちます。

まず、doループを持つクラスに次の関数を追加します。

private static final String toTwoDArrayString(Object[][] arr) {
    StringBuilder sb = new StringBuilder();
    sb.append('[');
    boolean first = true;
    for(Object[] row : arr) {
        if (!first) {
            // Requires Java 7. replace %n with either \n or \r\n for Java 6
            sb.append(String.format(",%n ")); 
        }
        first = false;
        sb.append(Arrays.toString(row));
    }
    sb.append(']');
    return sb.toString();
}

Master.MathaRay_Part2.toString()2 番目に、まだ実装されていない場合は、有効な方法で実装されていることを確認します。Eclipseでは、使用できますRight Click -> Source -> Generate toString()...

do最後に、ループの直前に次のように呼び出します。

System.out.println(toTwoDArrayString(onepick));
于 2013-09-21T22:31:13.743 に答える