JTextArea文本域組件,其實跟JTextField文本框組件的使用非常相似,只不過文本框是一行,但文本域可以是多行。
JTextArea類所在包
JPasswordField類的所在包不用說大家都知道是javax.swing包了,所以開頭導入。
import javax.swing.*;
JTextArea類構造方法
public JTextArea();
public JTextArea(String text);
public JTextArea(int rows, int columns);
public JTextArea(String text, int rows, int columns);
主要的構造方法就這些,這里簡單說一下text就是文本域中的初始內容,rows和columns分別代表文本域的行數和列數。
JTextArea類使用方法
JTextArea的使用真的可以說跟JTextField極為相似,先是設置文本,下面的代碼就是將文本域的內容設置為字符串text。如果你想清空所有文本,其實就是將文本設置為一個空串,即讓text = ""。
text_area.setText(text);
接下來是追加文本的方法,就是在當前文本的后面追加一個字符串text,實現起來很簡單。
text_area.append(text)
之后是將焦點重新轉移到文本域,因為當你點完按鈕后,焦點就到了按鈕,如果要繼續在文本域內輸入需要點一下文本域才能繼續編輯,所以JTextArea類又提供了一個方法來幫助你將焦點重新回到文本域。
text_area.requestFocus();
下一個方法是用來獲取當前文本域內的文本的,返回的是一個字符串。
String str = text_area.getText();
最后一個方法是來設置自動換行的,默認情況下我們會發現如果我們輸入到頭了,文本域不會自動為你換行,所以為了讓文本域在一行到頭時自動換行,JTextArea類又提供了一個方法來解決這個問題。這里的flag為一個boolean類型的值,如果為true則設置自動換行,否則是取消自動換行。
text_area.setLineWrap(flag);
代碼
package technology;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyFirstTextArea extends JFrame {
final static long serialVersionUID = 1L;
JPanel panel_center = new JPanel(), panel_south = new JPanel();
Container container = getContentPane();
JTextArea text_area = new JTextArea("文本域", 10, 20);
JButton clear_button = new JButton("清空"), laugh_button = new JButton("哈哈"), system_button = new JButton("記錄");
public MyFirstTextArea()
{
super("JFrame窗體");
this.setBounds(200, 100, 400, 300);
text_area.setLineWrap(true);
clear_button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
text_area.setText("");
text_area.requestFocus();
}
});
laugh_button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
text_area.append("233");
text_area.requestFocus();
}
});
system_button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.out.println(text_area.getText());
System.out.println("====================================");
text_area.requestFocus();
}
});
panel_center.add(text_area);
panel_south.setLayout(new FlowLayout(FlowLayout.CENTER, 25, 20));
panel_south.add(clear_button);
panel_south.add(laugh_button);
panel_south.add(system_button);
container.setLayout(new BorderLayout());
container.add(panel_center, BorderLayout.CENTER);
container.add(panel_south, BorderLayout.SOUTH);
this.setVisible(true);
}
public static void main(String[] args) {
new MyFirstTextArea();
}
}
效果圖如下:

