准備:
JTextArea 文本區,一個可以輸入文字的文本框
常用方法:
1.setText(String t)設置文本區中顯示的文本
2.getText() 獲取文本區中顯示的文本
JScrollPane 滑動窗格容器,一般放入長度或者寬度特別長的控件,通過滑動來查看控件中由於太長而顯示不出來的部分
首先創建一個可以輸入文本:

1 package swing; 2 3 import java.awt.Dimension; 4 import java.awt.EventQueue; 5 6 import javax.swing.JButton; 7 import javax.swing.JFrame; 8 import javax.swing.JScrollPane; 9 import javax.swing.JTextArea; 10 import java.awt.BorderLayout; 11 12 public class MyTextArea { 13 14 private JFrame frame; 15 private JTextArea textArea; 16 17 /** 18 * Launch the application. 19 */ 20 public static void main(String[] args) { 21 EventQueue.invokeLater(new Runnable() { 22 public void run() { 23 try { 24 MyTextArea window = new MyTextArea(); 25 window.frame.setVisible(true); 26 } catch (Exception e) { 27 e.printStackTrace(); 28 } 29 } 30 }); 31 } 32 33 /** 34 * Create the application. 35 */ 36 public MyTextArea() { 37 initialize(); 38 } 39 40 /** 41 * Initialize the contents of the frame. 42 */ 43 private void initialize() { 44 45 //創建一個對話框 46 frame = new JFrame(); 47 //創建一個文本區 48 textArea = new JTextArea(); 49 //將文本區添加到彈出框框 50 frame.add(textArea); 51 //設置彈出框框 52 frame.setLocation(200,50); 53 frame.setSize(620,660); 54 frame.setVisible(true); 55 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 56 57 //給文本區設置顯示值 58 textArea.setText("湯老師好!"); 59 //獲取文本區的值並打印到控制台 60 System.out.println(textArea.getText()); 61 } 62 63 }
運行程序就可以在彈出的框框中輸入文字了。但是這里有個問題:如果我輸入的內容特別多,例如有1000個字。這個文本區控件只會顯示一行!為了讓文本區控件能夠自動換行,需要加上下面這行代碼:
//設置當文本字長度超過frame的寬度時自動換行() textArea.setLineWrap(true);
這些可以自動換行了,但是問題又來了。如果我的文字特別多,多到彈出的框框都顯示不下了怎么辦?這時就需要將這個文本區控件textArea放入JScrollPane控件中,讓它能夠“滾動起來”。這樣就能通過滾動來查看文本區中顯示不下的內容了。將initialize()方法修改為如下代碼:

1 private void initialize() { 2 3 //創建一個對話框 4 frame = new JFrame(); 5 //創建一個文本區 6 textArea = new JTextArea(); 7 //設置當文本字長度超過frame的寬度時自動換行() 8 textArea.setLineWrap(true); 9 10 //創建一個滑動窗格容器,並將剛剛創建的文本區放入其中,當文本區textArea中的內容超過彈出框框frame的長度時。滑動就可以查看沒顯示出來的內容 11 JScrollPane scrollpane=new JScrollPane(textArea); 12 //將滑動窗格容器添加到彈出框框 13 frame.add(scrollpane); 14 //設置彈出框框 15 frame.setLocation(200,50); 16 frame.setSize(620,660); 17 frame.setVisible(true); 18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 20 //給文本區設置顯示值 21 textArea.setText("湯老師好!"); 22 //獲取文本區的值並打印到控制台 23 System.out.println(textArea.getText()); 24 }
有的時候還需要設置文本區控件中顯示的值,通過setText(String t)方法實現。如果要獲取文本區中顯示的值則使用getText()方法。

1 //給文本區設置顯示值 2 textArea.setText("湯老師好!"); 3 //獲取文本區的值並打印到控制台 4 System.out.println(textArea.getText());
完整的代碼:

1 package swing; 2 3 import java.awt.Dimension; 4 import java.awt.EventQueue; 5 6 import javax.swing.JButton; 7 import javax.swing.JFrame; 8 import javax.swing.JScrollPane; 9 import javax.swing.JTextArea; 10 import java.awt.BorderLayout; 11 12 public class MyTextArea { 13 14 private JFrame frame; 15 private JTextArea textArea; 16 17 /** 18 * Launch the application. 19 */ 20 public static void main(String[] args) { 21 EventQueue.invokeLater(new Runnable() { 22 public void run() { 23 try { 24 MyTextArea window = new MyTextArea(); 25 window.frame.setVisible(true); 26 } catch (Exception e) { 27 e.printStackTrace(); 28 } 29 } 30 }); 31 } 32 33 /** 34 * Create the application. 35 */ 36 public MyTextArea() { 37 initialize(); 38 } 39 40 /** 41 * Initialize the contents of the frame. 42 */ 43 private void initialize() { 44 45 //創建一個對話框 46 frame = new JFrame(); 47 //創建一個文本區 48 textArea = new JTextArea(); 49 //設置當文本字長度超過frame的寬度時自動換行() 50 textArea.setLineWrap(true); 51 52 //創建一個滑動窗格容器,並將剛剛創建的文本區放入其中,當文本區textArea中的內容超過彈出框框frame的長度時。滑動就可以查看沒顯示出來的內容 53 JScrollPane scrollpane=new JScrollPane(textArea); 54 //將滑動窗格容器添加到彈出框框 55 frame.add(scrollpane); 56 //設置彈出框框 57 frame.setLocation(200,50); 58 frame.setSize(620,660); 59 frame.setVisible(true); 60 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 61 62 //給文本區設置顯示值 63 textArea.setText("湯老師好!"); 64 //獲取文本區的值並打印到控制台 65 System.out.println(textArea.getText()); 66 } 67 }
作業:
1.復制完整代碼到eclipse中,但是initialize()方法部分手動輸入,變敲邊理解代碼。
2.完成一個程序要求
1.包含一個button,個可以輸入的文本框A 和B
2.在B中輸入文字后,點擊button 文字就出現在A中,並且還要在控制台輸出B中的文字,最后清空B中的輸入
3.當A或者B中內容太多時,可以有滾動效果,查看顯示不了的內容
3.理解以下代碼

1 package swing; 2 3 import java.awt.Button; 4 import java.awt.Dimension; 5 import java.awt.EventQueue; 6 7 import javax.swing.JButton; 8 import javax.swing.JFrame; 9 import javax.swing.JScrollPane; 10 import javax.swing.JTextArea; 11 import java.awt.BorderLayout; 12 13 public class MyTextArea { 14 15 private JFrame frame; 16 17 18 /** 19 * Launch the application. 20 */ 21 public static void main(String[] args) { 22 EventQueue.invokeLater(new Runnable() { 23 public void run() { 24 try { 25 MyTextArea window = new MyTextArea(); 26 window.frame.setVisible(true); 27 } catch (Exception e) { 28 e.printStackTrace(); 29 } 30 } 31 }); 32 } 33 34 /** 35 * Create the application. 36 */ 37 public MyTextArea() { 38 initialize(); 39 } 40 41 /** 42 * Initialize the contents of the frame. 43 */ 44 private void initialize() { 45 46 //創建一個對話框 47 frame = new JFrame(); 48 49 //創建一個按鈕 50 JButton jButton = new JButton(); 51 jButton.setBounds(0, 0, 620, 638); 52 //設置jButton中顯示的文本 53 jButton.setText("1233336666666666666666666666666666666666666666"); 54 //設置按鈕高為5000 寬為620 55 jButton.setPreferredSize(new Dimension(620,5000)); 56 //創建一個滑動窗格容器,將按鈕jButton放入其中, 57 JScrollPane scrollpane=new JScrollPane(jButton); 58 //將滑動窗格容器添加到彈出框框 59 frame.add(scrollpane); 60 //設置彈出框框 61 frame.setLocation(200,50); 62 frame.setSize(620,660); 63 frame.setVisible(true); 64 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 65 66 } 67 68 }