![](/img/trans.png)
[英]JFrame: How to display text without JTextArea/JTextField
[英]How to put a text area (JTextArea) into a window (JFrame)?
我有一個工作代碼,該代碼創建一個帶有文本區域的窗口。 代碼在這里 。 我試圖弄清楚這段代碼是如何工作的。 很多事情很清楚:
我不清楚,我們將文本區域放在窗口的哪個位置。 我看到該文本區域是在構造函數之前創建的。 我還看到,在構造函數中,我們設置了文本區域(setText)的一些“參數”。 我還看到在構造函數中,我們創建了一個滾動區域並為其設置了一些參數。 我看到滾動區域已“連接”到文本區域(因為我們使用文本區域的實例來創建滾動區域)。 我還看到,我們創建了一個名為“內容”的對象(使用當前窗口),並將滾動區域“添加”到“內容”中。
但是,在哪個位置將文本區域添加到窗口? 可以說文本區域被添加到滾動區域中,而滾動區域被添加到“內容”中,並且內容是窗口對象的一部分嗎?
在第16行中,您將創建一個JScrollPane,該JScrollPane包裹了您的JTextArea對象。 在第21行上,將此JScrollPane添加到JFrame的ContentPane中,該JScrollPane包含TextArea。當您調用getContentPane()而不是創建新的JScrollPane時,ContentPane已成為JFrame的一部分。
ContentPane的所有元素都將顯示為JFrame的一部分。 JFrame的add方法只是為了方便起見,並將調用轉發到JFrames ContentPane。
滾動窗格scrollingArea是使用內部文本區域創建的。 scrollPane是使用文本區域m_resultArea構造的 (請參見JScrollPane的構造函數的文檔)。 然后將其添加到框架的內容窗格。
GUI元素應在EDT上構建。 這是上面引用的程序的更可靠的main()
方法。
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame win = new TextAreaDemo();
win.setTitle("TextAreaDemo");
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.pack();
win.setVisible(true);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.