プログラムを短くするために、配列とループを使用してタスクを実行していますが、問題があります。配列の初期化が間違っているのか、アクセスが間違っているのかわかりません。40 個の JCheckBox の配列を初期化しています。
JCheckBox[] seatz={chk_a1,chk_a2,chk_a3,chk_a4,chk_a5,chk_a6,chk_a7,chk_a8,chk_a9,chk_a10,chk_b1,chk_b2...chk_d10};
JCheckBox の項目の状態が変更されるたびに、seatChecker()
メソッドが呼び出されます
public void seatChecker(JCheckBox chkbox) {
if(chkbox.isSelected()){
chkboxcount=chkboxcount+1;
} else {
chkboxcount=chkboxcount-1;
}
if(chkboxcount>=totalseats){
disableSeats();
} else {
enableSeats();
}
}
ここでは、カウントが特定の制限に達した場合は JCheckBox を無効にし、それ以外の場合は有効にしています。2 つのメソッドのコードは次のとおりです。
public void disableSeats() {
for(int x = 0; x < 40 ; x++) {
if(seatz[x].isSelected()==false){
seatz[x].setEnabled(false);
}
}
}
public void enableSeats() {
for(int x = 0; x < 40 ; x++) {
seatz[x].setEnabled(true);
}
}
エラーが表示Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
されif(seatz[x].isSelected()==false)
、seatz[x].setEnabled(true)
ここで何が間違っていますか?