显示来自不同类中jTextArea中的类的数据的问题

时间:2013-10-29 11:17:27

标签: java swing jtextarea jlist

我一直在仔细查看这个网站,试图找到我的问题的答案,但我无法在任何地方找到它。我是Java的新手,所以如果我使用不正确的术语,请耐心等待。

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

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

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

有没有办法提取这些信息,以便我可以在我的MainJFrame中使用它,而无需将其保存到文件或修改代码?从我没有经验的观点来看,这看起来不太可能,每次我尝试修改此代码时,例如,将一个String返回给MainJFrame,它被我的教师拒绝了。我真的没想到了。

感谢您的意见。

1 个答案:

答案 0 :(得分: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!");
}  

我认为你的导师试图强调没有必要返回任何价值来做这件事。

建议阅读:Mutable and Immutable ObjectsPass-by-Value Please