Java の内部メソッドにはほとんど問題がありません。列をなして:
dReservation[i].dispose();
エラーがあります:
別のメソッドで定義された内部クラス内の非最終変数 dReservation を参照できません
フォーラムで多くのスレッドを読みましたが、うまくいかなかった問題の解決策が 2 つあります。
別のメソッドで定義された内部クラス内の非最終変数を参照することはできません
別のメソッドで定義された内部クラス内の非最終変数 i を参照できません
非最終の「ローカル」変数を内部クラス内で使用できず、代わりに外側のクラスの非最終フィールドを使用できるのはなぜですか?
クラス ( ) のフィールドJDialog[] dReservation
として設定しようとしました。その後、私のエラーは消えますが、内側のメソッド ( ) ではなくis .global
GUIShowReservations
actionPerformed
dReservation[i]
null
フィールドJDialog[] dReservation
として設定したときとまったく同じ履歴です。final
ですnull
。
bShowReservations = new JButton("Show Reservations");
bShowReservations.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
JDialog[] dReservation = new JDialog[10000];
for(Object o: reservations)
{
rez = (Reservations)o;
reservation.append(rez.getGroup());
dReservation[i] = new JDialog();
dReservation[i].setSize(400, 300);
dReservation[i].setLocationRelativeTo(null);
dReservation[i].setVisible(false);
dReservation[i].setLayout( null );
dReservation[i].setTitle("Edition");
bEditAccept = new JButton("Edit");
bEditAccept.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
rez.setTeacher(cEditTeacher.getSelectedItem().toString());
dao.update(rez);
dReservation[i].dispose();
}
});
bEditAccept.setSize(160, 24);
bEditAccept.setLocation(10, 200);
dReservation[i].add(bEditAccept);
}
}
});
私たちを手伝ってくれますか?JDialog
の代わりに、内部メソッドで適切なを表示したいnull
。