-1

私のJavaコードの実行はデバッガーで機能しますが、実行では機能しません。Eclipseデバッガーでは、jframeが表示されます。

ただし、実行すると、フレームがまったく表示されません。

私は自分のEventListenerとそのすべてを台無しにしたと思います。

private class ButtonHandler implements ActionListener{
    JButton button;

    public void actionPerformed(ActionEvent event) {
        find(event.getSource());

        button = buttonHolder[indexK[kCount-1]][indexJ[jCount-1]];

        if((button.getIcon() == red && choice1 == 1) || (button.getIcon() == green && choice1 == 0)){
            JOptionPane.showMessageDialog(null, "You chose the wrong color!");
            return;
        }

        if(turn ==1){
            if(clicks != 1){
                if(button.getIcon() == red){
                    clicks++;
                    temp = button;
                }else if (button.getIcon() == green){
                    clicks++;
                    temp = button;
                }else{
                    kCount=0;
                    jCount=0;
                }
            }else{
                if((button.getIcon() == green) ||  (button.getIcon() == red)){
                    //do nothing
                }else if(temp.getIcon() == green && (grid[indexK[1]][indexJ[1]] == 2 || grid[indexK[1]][indexJ[1]] == 3 || grid[indexK[1]][indexJ[1]] == 4) && button.getIcon() != green && ((indexK[0]+1 ==indexK[1] && indexJ[0] == indexJ[1]) || (indexK[0] ==indexK[1] && indexJ[0]+1 == indexJ[1]) || (indexK[0] ==indexK[1] && indexJ[0]-1 == indexJ[1])) ){
                    temp.setIcon(null);
                    button.setIcon(green);
                    grid[indexK[1]][indexJ[1]] = 2;

                    if(indexK[0] == 0 || indexK[0]== 9){
                        grid[indexK[0]][indexJ[0]] = 4;
                    }else{
                        grid[indexK[0]][indexJ[0]] =3;
                    }
                    found = 2;

                }else if(temp.getIcon() == red && (grid[indexK[1]][indexJ[1]] == 1 || grid[indexK[1]][indexJ[1]] == 3 || grid[indexK[1]][indexJ[1]] == 5) && button.getIcon() != red && ((indexK[0]+1 ==indexK[1] && indexJ[0] == indexJ[1]) || (indexK[0] ==indexK[1] && indexJ[0]+1 == indexJ[1]) || (indexK[0]-1 ==indexK[1] && indexJ[0] == indexJ[1]))){
                    temp.setIcon(null);
                    button.setIcon(red);
                    grid[indexK[1]][indexJ[1]] = 1;

                    if(indexJ[0] == 0 || indexJ[0]== 9){
                        grid[indexK[0]][indexJ[0]] = 5;
                    }else{
                        grid[indexK[0]][indexJ[0]] =3;
                    }
                    found = 2;
                }

                clicks=0;
                kCount=0;
                jCount=0;
            }

        }
    }

}

}

問題がなければ、めちゃくちゃになっている理由を考えてみてください。

4

1 に答える 1

0

まず、同じモードで実行していることを再確認してください。アプレット モード用に作成されたプログラムは、アプリケーションと同じではありません。

それでもうまくいかない場合:

アプレットとして実行している場合: init 関数があることを確認します。

アプリケーションとして実行している場合: 実行構成でメイン クラスを定義していることを確認します。その場合は、その中で main() メソッドを実行していることを確認してください。

于 2012-04-13T10:46:45.710 に答える