文本域與文本框的最大區別就是文本域允許用戶輸入多行文本信息。在 Swing 中使用 JTextArea 類實現一個文本域,其常用構造方法如下。
- JTextArea():創建一個默認的文本域。
- JTextArea(int rows,int columns):創建一個具有指定行數和列數的文本域。
- JTextArea(String text):創建一個包含指定文本的文本域。
- JTextArea(String text,int rows,int columns):創建一個既包含指定文本,又包含指定行數和列數的多行文本域。
JTextArea 類的常用方法如表所示。
方法名稱 | 說明 |
---|---|
void append(String str) | 將字符串 str 添加到文本域的最後位置 |
void setColumns(int columns) | 設置文本域的行數 |
void setRows(int rows) | 設置文本域的列數 |
int getColumns() | 獲取文本域的行數 |
void setLineWrap(boolean wrap) | 設置文本域的換行策略 |
int getRows() | 獲取文本域的列數 |
void insert(String str,int position) | 插入指定的字符串到文本域的指定位置 |
void replaceRange(String str,int start,int end) | 將指定的開始位 start 與結束位 end 之間的字符串用指定的字符串 str 取代 |
例 1
使用 JFrame 組件創建一個窗口,再向窗口中添加一個文本域,並將文本域中的文本設置爲自動換行,允許顯示滾動條。具體代碼如下:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class JTextAreaDemo
{
public static void main(String[] agrs)
{
JFrame frame=new JFrame("Java文本域組件示例"); //創建Frame窗口
JPanel jp=new JPanel(); //創建一個JPanel對象
JTextArea jta=new JTextArea("請輸入內容",7,30);
jta.setLineWrap(true); //設置文本域中的文本爲自動換行
jta.setForeground(Color.BLACK); //設置組件的背景色
jta.setFont(new Font("楷體",Font.BOLD,16)); //修改字體樣式
jta.setBackground(Color.YELLOW); //設置按鈕背景色
JScrollPane jsp=new JScrollPane(jta); //將文本域放入滾動窗口
Dimension size=jta.getPreferredSize(); //獲得文本域的首選大小
jsp.setBounds(110,90,size.width,size.height);
jp.add(jsp); //將JScrollPane添加到JPanel容器中
frame.add(jp); //將JPanel容器添加到JFrame容器中
frame.setBackground(Color.LIGHT_GRAY);
frame.setSize(400,200); //設置JFrame容器的大小
frame.setVisible(true);
}
}
在上述代碼中將 JTextArea 文本域放入滾動窗口中,並通過 getPreferredSize() 方法獲得文本域的顯示大小。將滾動窗口的大小設置成與文本域大小相同,再將滾動窗口添加到 JPanel 面板中。
運行程序,在文本域中可以輸入多行內容,當內容超出文本域高度時會顯示滾動條,如圖所示。
謝謝觀看