Похоже, я полностью не понимаю, как это работает ..... У меня есть класс, который расширяет JPanel и реализует Actionlistener, а затем я хочу добавить это к классу, который расширяет JFrame. ... Я не могу получить эту работу .....Невозможно добавить actionlistener из другого класса
public class testPanel extends JFrame implements ActionListener{
JButton someBtn;
public testPanel(JButton someBtn){
this.someBtn = someBtn;
add(someBtn);
someBtn.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e){
if(e.getSource() == someBtn)
System.out.println("this worked");
}
}
второй файл класса
public class JavaApplication3 extends JFrame{
/**
* @param args the command line arguments
*/
JButton button;
public JavaApplication3(){
super("blah");
JFrame p = new testPanel(button);
add(p);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO code application logic here
new JavaApplication3();
}
}
Вы не инициализируетесь переменной экземпляра кнопки ... – ppeterka
Обычно вы хотите включить фактические ошибки вы получите. –
Ваш пример не может работать, оба класса простираются от JFrame – MadProgrammer