私はこの質問をもっと大きな形で以前に投稿しましたが、コミュニティが私をよりよく助けてくれるような方法で、あなた全員に関する情報を減らすことで、もう一度投稿したいと思っています.
基本的に、以下に説明するこのコードがあります。
for(JMenuItem x : chem3_x_y){
x.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent k) {
new SwingImplementation(1, tt+1);
}
});
gEleven[6].add(x);
tt++;
}
tt=0;
まず、配列 chem3_x_y 内のすべての JMenuItem を循環します。
次に、ActionListener を 'x' または配列の各項目に追加します。これにより、引数 1 と変数 'tt' を持つ新しい SwingImplementation が作成されます。
これに続いて、JMenu gElevenが問題の JMenuItem を受け取り、tt を 1 増やします。
上記のコードの目的は、JMenuItems を gEleven に追加し、ActionListeners を各メニュー項目に追加するプロセスを自動化することです。
問題は、変数 'tt' に渡される引数が常に同じ 1 であり、'tt' の引数が 1 のアクション リスナーがすべての JMenuItem に適用されているかのようです。 JMenuItemごとに 1 つの ActionListener を作成するためにttを常に増加させます。引数は (1, tt) で、tt は常に 1 ではありません。