0

我一直在非常彻底地浏览这个网站,试图找到我的问题的答案,但我无法在任何地方找到它。我是 Java 新手,所以如果我使用了不正确的术语,请多多包涵。

我有两个文件,MainJFrame 和 Class1。我需要使用给定的 Display() 方法在 MainJFrame 的 jTextArea 中显示 Class1 的参数。这听起来很容易,因为我应该能够简单地从 MainJFrame 调用 Class1 的 Display() 方法(在 MainJFrame 中建立 Class1 的实例之后)并以这种方式显示它,但问题是给出的 Display() 方法是无效的功能。这是给定的代码:

    public void Display(JList list)
    {
    DefaultListModel model = new DefaultListModel();

    model.add(0, item1 + " " + item2 + " " + item3);
    list.setModel(model);
    }

有什么方法可以提取这些信息,以便我可以在 MainJFrame 中使用它,而无需将其保存到文件或修改代码?从我缺乏经验的角度来看,这看起来不可能,并且每次我尝试修改此代码以例如将字符串返回到 MainJFrame 时,它​​都被我的导师拒绝了。我真的没有想法了。

感谢您的意见。

4

1 回答 1

1

但问题是给出的 Display() 方法是一个 void 函数

返回void没有问题。由于JTextArea它是可变的并且 Java 是按值传递的,因此您可以在您的MainFrame类中简单地执行以下操作:

JTextArea textArea = new JTextArea(5, 30);

Class1 class1 = new Class1();
class1.display(textArea);  

getContentPane().add(new JScrollPane(textArea));

并将class1负责根据需要设置文本。例如:

public void display(JTextArea textArea){
    textArea.setText("I'm setting text from a Class1's object!");
}  

我认为您的讲师试图强调没有必要返回任何值来执行此操作。

建议阅读:可变和不可变对象以及按值传递请

于 2013-10-29T12:33:42.420 回答