gpt4 book ai didi

java - 在Java中如何将变量从一个类传递到另一个类?

转载 作者:行者123 更新时间:2023-11-30 01:58:40 25 4
gpt4 key购买 nike

我正在尝试将变量从一个类传递到另一个类。我有如下所示的 3 个类(class)。

public class OvalPanel extends JPanel {
//declare variables

public OvalPanel() {

//create panel here

ovalShape = new OvalShape();
ovalShape.setMyColor(255, 255, 255);

//set layout down here
}

然后我有 OvalShape.java

public class OvalShape extends JPanel {

public OvalShape() {
Dimension size = getPreferredSize();
size.width = 300;
size.height= 300;
setPreferredSize(size);
setBorder(BorderFactory.createLoweredSoftBevelBorder());
}

public void setMyColor(int r, int g, int b) {
this.myColor = new Color(r,g,b);
}

public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(myColor);
g.fillOval(0,0,100,100);
}

最后是DetailsPanel.java,其中设置了r、g、b 值

public class DetailsPanel extends JPanel {

//declare variables

public DetailsPanel() {
Dimension size = getPreferredSize();
size.width = 250;
setPreferredSize(size);


redSlider = new JSlider(SwingConstants.VERTICAL, 0, 255, 0);
redSlider.addChangeListener(
new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
red = redSlider.getValue();
}
}
);

//greenSlider

//blueSlider

//set layout
}

我的问题是如何将变量 red、green、blue 从 DetailsPanel 传递到 OvalPanel 中的方法 ovalShape.setMyColor()

最佳答案

我认为您需要通过添加所有面板的父对象来完成此操作。您应该看看 mediator design pattern :

  • a set of objects communicate in well-defined but complex ways. The resulting interdependencies are unstructured and difficult to understand.

通过使用中介模式,您可以减少 3 个类之间的依赖关系。在良好的面向对象设计中,这 3 个类不应相互依赖,因此您可以在必要时删除或替换它们,而不会破坏其余代码。

关于java - 在Java中如何将变量从一个类传递到另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53581693/

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