准备:
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 }