gpt4 book ai didi

java - 如何访问另一个类中的对象(Java)

转载 作者:行者123 更新时间:2023-12-01 11:52:59 25 4
gpt4 key购买 nike

这是我的代码的缩写版本:

public class ColorFactory extends JFrame {
public ColorFactory(){
buildTopPanel();
}

public void buildTopPanel(){
JPanel topPanel = new JPanel();
this.add(topPanel, BorderLayout.NORTH);
}

}

如您所见,我有一个方法可以在调用时创建一个新的 JPanel 对象。如何从另一个类访问该特定 JPanel 对象?我有一个按钮监听器类,我想从 ColorFactory 类外部更改 JPanel 的颜色。此代码位于 ColorFactory 类之后。

public class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
//Change JPanel color here.
}
}

在 ColorFactory 构造函数中实例化 JPanel 然后通过那里访问它会更好吗?

最佳答案

对于初学者,您需要将 JPanel 设置为 ColorFactory 中的一个字段,这样当您退出 buildTopPanel() 时,对它的引用不会消失。保存对它的引用后,您就有几个选择。从设计的角度来看,糟糕的选择是公开它,例如:

JPanel getTopPanel(){
return topPanel;
}

更好的选择是让您的操作监听器向 ColorFactory 发送一条消息,表示“respondToButton(Color newColor)”,并让 ColorFactory 决定更改 topPanel 的颜色。 ..例如:

public void respondToButton(Color newColor){     
topPanel.setBackground(newColor);
}

关于java - 如何访问另一个类中的对象(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648786/

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