2012-03-20 20 views
1

我需要顯示在NetBeans中,我在java swing中測試區域中使用標準java編程(在Main clas中)編譯的計算結果,但我總是遇到問題就在此。我敢打賭,這個問題是因爲要打印我的字符串是不是在GUI類可用的,這裏是我的代碼部分擺動Java GUI Netbeans,從另一個包中的類顯示textarea中的輸出

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)); 
    } 

,這裏是在套裝引擎,分類打印,方法printresult代碼,字符串[] printresult從另一個類傳遞,它可以在沒有GUI的情況下直接運行:

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

確實需要幫助。謝謝

+0

您確定要將控制檯程序與Swing程序混合嗎?你爲什麼想這樣做?也許你向我們展示了引擎包中的錯誤方法,因爲在GUI程序中確實沒有'System.out.println(...)'的地方,除了可能爲了調試目的。 – 2012-03-20 03:18:40

+0

當然是例外,如果你必須將標準OutputStream重定向到你的JTextArea,比如我在今天早些時候的回答中顯示的:[如何在JFrame/JPanel中可視化控制檯java](http://stackoverflow.com/ a/9776819/522444),但對於通常以其他更簡單的方式最好解決的問題來說,這是一個非常麻煩的問題。 – 2012-03-20 03:26:44

+0

您的意思是您想要在NetBeans的'Test Results'窗口中顯示'JUnit'' @ Test'結果嗎? – trashgod 2012-03-20 04:49:07

回答

0

幽州:

Actualy我需要顯示我的我的揮杆文本區域控制檯的計算值,因爲這個程序需要使用GUI進行可視化,我認爲這是不可能的只是複製我所有的代碼都進入了GUI,因爲它包含了幾個類,所以我只需要將結果發送到GUI swing textarea,但我不知道該怎麼做。任何人都可以告訴我如何做到這一點,因爲這種方式是行不通的。

您首先需要做的是重寫您的計算代碼。你不會向我們展示任何這些代碼,這使得我們無法猜測它在做什麼或者做錯了什麼,但是我懷疑它會進行計算並將它們輸出到控制檯,這對於GUI來說不起作用。
我建議什麼,你爲你的非GUI計算代碼做:

  • 同樣,首先,重新寫你的計算代碼,以便它因爲一個適當哎呀類
  • 應該包括私有實例字段,至少一個構造函數和公共方法,以允許將信息傳遞給此類以及從類中提取結果的方法,但有些方法會同時執行這兩種方法。這些代碼都不會涉及到println的控制檯,除非這是爲了調試目的,因爲在最終的「生產」代碼中這些行將被刪除。
  • 上面描述的這個類將是你的「模型」或GUI背後的大腦。
  • 它應該沒有(或非常有限的)有關GUI的知識(它應該是GUI「不可知論的」),並且寫得足夠靈活,以便它可以被Swing GUI,控制檯程序或任何其他用戶界面使用考慮到。
  • 如果您想要看上,請給模型一個PropertyChangeSupport對象,以便GUI可以「傾聽」模型的變化並響應這些變化。

我建議你爲你的GUI dislay代碼做:

  • 這將是你的「視圖」模式,它也必須寫入符合面向對象編程的原則。
  • 給視圖一個我們上面描述的模型的實例字段。換句話說,你的視圖將在其中保存一個模型對象。
  • 讓您的視圖控制器或偵聽器與模型進行交互。例如,如果按下了一個JButton,讓它的ActionListener通知模型(通過調用適當的方法),確定該按鈕已被按下。如果模型需要來自GUI的信息(例如JTextFields中的文本),則ActionListener將提取此文本,然後使用方法參數將信息傳遞到模型中。
  • 將您的GUI註冊爲模型的「偵聽器」,可能使用PropertyChangeListener,並以此方式響應模型狀態中的更改。

這些建議非常通用的,因此可能不會像對你有幫助,你還是我想,但這是必要的因爲我們知道您的問題的信息有限。如需更具體的幫助,請向我們提供有關您的問題和代碼的更具體和詳細的​​信息。

相關問題