我在父類中用Java中的ActionListener掙扎着,我嘗試了一堆可能的解決方案,但無法實現它。在這裏,這也並沒有幫助: Java actionlistener actionPerformed in different class父類中的ActionListener
的問題如下:
的Class2 延伸 Class1的,我有class2的按鈕。只要按下Class2中的按鈕,就應通過動作偵聽器通知Class1並執行事件。
我在努力讓Class1知道事件已經發生。它對我來說看起來很簡單,但我仍在掙扎。
您的幫助將受到很大的鼓舞,謝謝!
父類
package test;
//imports removed for better visibility
public class ParentClass extends JPanel implements ActionListener{
JFrame frame;
public void createParentGui() {
frame = new JFrame("Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel mainCard = new JPanel(new CardLayout(20, 20));
ChildClass card1 = new ChildClass();
mainCard.add(card1);
frame.add(mainCard, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("Button pressed, action!");
}
}
子類
package test;
//imports removed for better visibility
public class ChildClass extends ParentClass {
ActionListener listener = null; //this is probably not right, how to do
//with a local variable when passing it to the parent class?
public Child() {
createGui();
}
private void createGui() {
final JButton b = new JButton("press me");
b.addActionListener(listener);
add(b);
}
}
如果'Class2'知道一個動作被執行'Class1'應該知道,因爲'Class2'是'Class1'。爲了我們的幫助,你應該包括你的代碼 – SomeJavaGuy
我認爲你應該在Java基礎知識上做一些閱讀。就像理解**對象**是Class2一樣。然後:請提供代碼;截至目前,我們沒有機會幫助這種投入。因此:忍耐[mcve] .... – GhostCat
感謝您的回覆。我添加了顯示問題的示例代碼。 – Doncholio