私は自分の特定の基本的な問題に対する答えをウェブで探していましたが、見つけることができませんでした。私はプログラミングに不慣れであり、学校のためにこれをしなければなりません。私は6/49宝くじのインターフェースを作成しました。ここでは、6つのJButtonをクリックして、「ラッキー」な数字を作成する必要があります。インターフェイス.javaでは、次のようにボタンを作成しました。
JButton b;
for (i = 1; i <= 49; i ++)
{
String s = String.valueOf(i);
b = new JButton(s);
if (i % 2 == 0)
b.setForeground(new Color(3, 121, 184));
else
b.setForeground(new Color(228, 44, 44));
choixNumero.add(b);
注:「choixNumero」はgridLayout(7 x 7)です
別の.javaで、JButton bへのactionListenerを作成していますが、それは機能していないようです。これが私がそれを書いた方法です:
intProjet.b.addActionListener(new EcouteurCombinaison()); // where "intProjet" is my interface.java
そしてここに私のEcouteurCombinaisonのコードがあります:
private int [] nums;
private int nbRestant = 6;
private class EcouteurCombinaison implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
if (nbRestant > 0)
{
//nums[nbRestant] = indexOf(e)); //will have to find a way to get index of the button pressed
nbRestant --;
intProjet.valNbRestant.setText("" + nbRestant);
}
else
{
JOptionPane.showMessageDialog(null, "Vous avez choisis vos 6 numéros\n Cliquer sur Soumettre pour valider", "Information", JOptionPane.INFORMATION_MESSAGE);
}
}
}
つまり、基本的には、ボタンが押されるたびに、JButtonのインデックスまたは値をベクターに追加しようとしています。次に、それを別の.javaに送信します
私は自分のコードに他のactionListenerを実装しましたが、それらは正常に機能します(JButton、RadioButton、JComboBox)。ボタンをクリックしても何も起こらない理由がわかりません。
すべてのコードを貼り付けずに、これをできるだけ明確にしようとしました。
編集: ActionListenerは最後のボタン(49)でのみ機能します。すべてのbボタンをリッスンさせるにはどうすればよいですか?