2013-12-09 23 views
0

我創建了一個名爲'outputTextArea'的textArea的JFrame,我想從textArea中的數據庫查詢中打印結果。但是,變量outputTextarea不是靜態的,因此我無法在main方法中調用setText()方法在textArea中打印數據庫結果集。NetBeans Swing TextArea不是靜態的,會導致問題

我想知道如何使這個變量(private javax.swing.JTextArea outputTextArea;)靜態,因爲NetBeans不會讓我編輯這個變量,因爲它是在我拖放textArea時由NetBeans生成的。

+0

你有沒有試過像''私有靜態的JTextArea hiddenTextArea''在其中設置的文本,然後就去做''outputTextArea.setText(hiddenTextArea.getText())''? – hbsrud

回答

1

只需在您的班級中添加一個訪問器方法來調整該字段。例如:

public void setTextAreaText(String newText) { 
    outputTextArea.setText(newText); 
} 

然後,任何引用您的課程的人都可以調整文本區域中的文本。只要確保從Event Dispatch Thread中調用該方法。這通常是SwingUtilities.invokeLater

SwingUtilities.invokeLater(new Runnable() { 
    public void run() { 
    myClassReference.setTextAreaText("Hello, World"); 
    } 
}); 

實現見documentation on Event Dispatch Thread,如果這樣的事情是新的給你。使用Swing時,使線程正確非常重要。

+0

如何從事件調度線程調用方法(我知道線程是什麼,但我不明白你說的是什麼)。 – user2793161

+0

正如提醒一下,使用這種方式將擦除JTextArea上的以前的文本。如果想在每次執行查詢時清除textarea,或者想要將新文本與前一個文本進行彙總,請考慮一下有趣的事情。 – prmottajr

0

如果你只是想編輯代碼。

用另一個編輯器打開代碼就像記事本或其他東西。如果您在自動生成的代碼之前刪除GEN-BEGIN:initComponents,則還可以通過netbeans編輯代碼。

2

我有同樣的問題。 在Netbeans IDE 8.0.2中: 1)在設計選項卡 2)單擊文本區域 3)轉到屬性 - >代碼 4)變量修飾符 - >添加靜態。

它爲我工作。

myimage

相關問題