Java GUI Netbeans,在另一个包中的类中显示textarea中的输出

时间:2012-03-20 02:44:13

标签: java swing netbeans

我需要在netbeans的java swing GUI测试区域中显示我在标准java编程(在Main clas中)编译的计算结果,但我总是遇到问题。我打赌问题是因为我要打印的字符串在GUI类中不可用,这是我在摇摆中的代码部分

private void predictActionPerformed(java.awt.event.ActionEvent evt) {                                        

        TextArea1.setText(Engine.Print.printresult(toarray));
        //JOptionPane.showMessageDialog(null,Engine.Print.printresult(toarray));
    //       TextArea1.setText(Retrieving.main(args));
    } 

这里是包Engine,Class Print,方法printresult,String [] printresult中的代码从另一个类传递,它可以在没有GUI的情况下直接运行:

 public static void printresult(String[]toarray){
  for(int a=0; a<toarray.length;a++){
    System.out.println(toarray[a]);
  }

真的需要帮助。谢谢

1 个答案:

答案 0 :(得分:0)

你说:

  

Actualy我需要在swing文本区域显示我的控制台计算值,因为这个程序需要使用GUI进行可视化,我认为将所有代码复制到GUI是不可能的,因为它包含几个类,所以我只需要将结果发送到GUI swing textarea但我不知道该怎么做。任何人都可以告诉我该怎么做,因为这种方式不起作用。

首先需要做的是重新编写计算代码。你没有向我们展示这些代码,这使得它无法猜测它正在做什么或它做错了什么,但我怀疑它会进行计算并将它们打印到控制台,这对于GUI不起作用。
我建议您使用非GUI计算代码:

  • 同样,首先,重新编写您的计算代码,因为它是正确的OOP类
  • 它应该包括私有实例字段,至少一个构造函数和允许将信息传递给此类的公共方法以及从类中提取结果的方法,尽管有些方法可以同时执行这两种操作。这些代码都不会涉及到控制台的println,除非这是出于调试目的,并认为这些行将在最终的“生产”代码中删除。
  • 上述类或类将是您的“模型”或GUI背后的大脑。
  • 它应该没有(或非常有限)关于GUI的知识(它应该是GUI“不可知”)并且写得足够灵活,以便Swing GUI可以使用控制台程序或任何其他用户界面想到。
  • 如果您想获得想象力,请为您的模型提供一个PropertyChangeSupport对象,以便GUI可以“监听”模型的更改并响应这些更改。

我建议您使用GUI显示代码:

  • 这将是你的“视图”模型,它也必须编写为符合面向对象编程的原则。
  • 为视图提供我们上面描述的模型的实例字段。换句话说,您的视图将在其中包含一个模型对象。
  • 让您的视图控制器或侦听器与模型交互。例如,如果按下JButton,让其ActionListener通知模型(通过调用适当的方法),按下按钮。如果模型需要来自GUI的信息,例如JTextFields中保存的文本,则ActionListener将提取此文本,然后使用方法参数将信息传递到模型中。
  • 让您的GUI注册为模型的“监听器”,可能使用PropertyChangeListener,这样它就可以响应模型状态的变化。

这些建议非常通用,因此可能对您或我想要的内容没有帮助,但鉴于我们对您的问题了解的信息有限,这是必要的。有关更具体的帮助,请向我们提供有关您的问题和代码的更多具体和详细信息。