У меня есть массив JButton на панели и нажата некоторая кнопка, это вызовет и инициализирует класс. Как бы ActionListener знать, какая кнопка нажата я инициализировать, что class.Thank выразличный actionListener для каждого JButton
public void generateButton(){
buttons[0]=new JButton("First Grade Math");
buttons[1]=new JButton("First Grade English");
buttons[2]=new JButton("Second Grade Math");
buttons[3]=new JButton("Second Grade English");
buttons[4]=new JButton("Third Grade Life Science");
buttons[5]=new JButton("Third Grade Math");
buttons[6]=new JButton("Fourth Grade Science");
buttons[7]=new JButton("Fourth Grade Math");
buttons[8]=new JButton("Fifth Grade Science");
buttons[9]=new JButton("Fifth Grade History");
for(int count=0; count<buttons.length; count++){
buttonPanel.add(buttons[count]);
buttons[count].addActionListener(listenerForButton);
}
add(buttonPanel, BorderLayout.CENTER);
}
class ButtonListener implements ActionListener{
private int buttonNum;
// generate question depend on what button is clicked using switch statement
public void actionPerformed(ActionEvent e){
JButton button1 = (JButton) e.getSource(); //cast object click to JButton variable
switch(buttonNum){ //fulfill loops/conditional
case 0:new FirstGrade("math"); break;
case 1:new FirstGrade("english"); break;
case 2:new SecondGrade("math"); break;
case 3:new SecondGrade("english"); break;
case 4:new ThirdGrade("Science"); break;
case 5:new ThirdGrade("Math"); break;
case 6:new FourthGrade("Science"); break;
case 7:new FourthGrade("Math"); break;
case 8:new FifthGrade("Science"); break;
case 9:new FifthGrade("History"); break;
}
theLayout.buttonClick(button1); //call method to change the color of the button and disable the button from use
checkCondition();
}
}
ли метод с 'source' в имени не даст вам никаких подсказок? – redFIVE
'ActionEvent # getSource' /' ActionEvent # getActionCommand'. Посмотрите на [Как использовать кнопки, флажки и радио кнопки] (http://docs.oracle.com/javase/tutorial/uiswing/components/button.html) и [Как написать прослушиватели действий] (http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html) для получения более подробной информации – MadProgrammer