Java:跨类传递变量

时间:2009-08-28 11:20:18

标签: java variables

这可能是一个非常简单的问题,但我无法弄清楚如何去做。

我有一个带有侦听器的GUI类,它从组合框和滑块中获取变量。我需要它将这些变量传递给另一个类中的方法,该类将在该类中的对象上运行。

我该怎么做?

4 个答案:

答案 0 :(得分:4)

有两种常见的方法。通常用于对话框的简单值使得所选值(例如组合框选择)可用于其他类,第二个允许其他类在您的对象上注册以接收更新通知。

第一种方法

  1. 将GUI元素的实际选择存储在(私有)成员变量中(例如:private String currentSelection)。这是由您已经实现的侦听器完成的。
  2. 实施类似String getSelection()
  3. 的方法
  4. 对话框完成后(如有人按下“确定”按钮),只需调用getSelection()方法
  5. 即可获取值

    如果您为用户提供输入某些值的对话框,则可以使用此选项。文件选择器对话框是一个典型的例子。如果您需要“实时”访问当前选择,请使用:

    第二种方法

    1. 实现Observer模式(Listener类,最终是一个事件类)
    2. 这个模式有点过于复杂,不能一步一步地详细解释,但是如果您感兴趣并且真正需要实时访问更改,那么就会有很多文档和示例。

答案 1 :(得分:1)

一个简单的数据类(理想情况下是一个接口,最小化耦合)应该可以解决问题。或者,如果数据成员名称等在运行时发生变化,则java.util.Map可能是合适的。

答案 2 :(得分:1)

您可以使用Java的Observer并在状态发生变化时传递任何对象作为参数。

答案 3 :(得分:0)

使用参数。

otherObject.doStuff(comboBoxValue, slider1Value, slider2Value);

您要调用的方法必须声明为接受您要传递的参数数量:

class OtherObject {
    ...
    void doStuff(int value1, int value2, int value3);
}