gpt4 book ai didi

java - JPanel 之间的通信

转载 作者:行者123 更新时间:2023-12-02 07:55:04 27 4
gpt4 key购买 nike

首先,我是 Java 新手,所以请保持温柔。

我有一个 JFrame,它有两个“JPanel”,其中一个是一个单独的类(我已经扩展了 JPanel)。理想情况下,我想“调度和事件”或通知 JFrame 上的其他 JPanel 对象。

我在自定义 JPanel 类中有一个 JButton 数组,我想向其中添加一个事件监听器。单击 JButton 后,我想更改另一个 JPanel 上的某些内容。

我真的不知道如何执行此操作,因此我将事件处理程序移至 JFrame 类中,并尝试执行以下操作:

panel.buttonArray[i][j].addActionListener(this);

但是,这样做根本不起作用。令人恼火的是,Eclipse 也没有提示...

关于如何实现这一目标有什么建议吗?

抱歉,这个解释很糟糕。

最佳答案

不要从面板的角度来思考,而是从对象的角度来思考。只要有一个对象,假设它的名称为 object77,拥有对另一个对象的引用,称为 object42,object77 就可以调用 object42 上的方法。

  object77.methodInObject42();

panel77.methodInPanel42();

至于事件处理程序,则

   buttonOnPanelXX.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
panel77.methodInPanel42();
}});

或者更好...

    button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
panel77.methodInPanel42();
}});
}});

关于java - JPanel 之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9759792/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com