Swing JTextArea類

2019-10-16 22:10:38

JTextArea類是一個顯示純文字的多行區域。

類宣告

以下是javax.swing.JTextArea類的宣告 -

public class JTextArea
   extends JTextComponent

類建構函式

編號 建構函式 描述
1 JTextArea() 構造一個新的TextArea
2 JTextArea(Document doc) 使用給定的文件模型構造一個新的JTextArea,並為所有其他引數(null0,0)預設設定。
3 JTextArea(Document doc, String text, int rows, int columns) 構造具有指定行數和列數以及給定模型的新JTextArea
4 JTextArea(int rows, int columns) 構造具有指定行數和列數的新空TextArea
5 JTextArea(String text) 構造一個顯示指定文字的新TextArea
6 JTextArea(String text, int rows, int columns) 構造一個具有指定文字和行數和列數的新TextArea

類方法

編號 類方法 描述
1 void append(String str)
2 protected Document createDefaultModel() 如果沒有明確給出,則建立要在構造中使用的模型的預設實現。
3 AccessibleContext getAccessibleContext() 獲取與此JTextArea關聯的AccessibleContext。
4 int getColumns() 返回TextArea中的列數。
5 protected int getColumnWidth() 獲取列寬。
6 int getLineCount() 獲取列寬。
7 int getLineEndOffset(int line) 確定區域中包含的行數。
8 int getLineOfOffset(int offset) 將偏移量轉換為元件文字到行號。
9 int getLineStartOffset(int line) 確定給定行開頭的偏移量。
10 boolean getLineWrap() 獲取文字區域的換行策略。
11 Dimension getPreferredScrollableViewportSize() 如果此元件嵌入在JScrollPane中,則返回視口的首選大小。
12 Dimension getPreferredSize() 返回TextArea的首選大小。
13 protected int getRowHeight() 定義行高的含義。
14 int getRows() 返回TextArea中的行數。
15 boolean getScrollableTracksViewportWidth() 如果視口應始終強制此Scrollable的寬度與視口的寬度匹配,則返回true
16 int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) 顯示邏輯行或列的元件應計算捲動增量,該增量將完全顯示一個新行或列,具體取決於方向的值。
17 int getTabSize() 獲取用於展開索引標籤的字元數。
18 String getUIClassID() 返回UI的類ID。
19 boolean getWrapStyleWord() 獲取文字區域換行時使用的換行樣式。
20 void insert(String str, int pos) 在指定位置插入指定的文字。
21 protected String paramString() 返回此JTextArea的字串表示形式。
22 void replaceRange(String str, int start, int end) 使用指定的新文字替換指示的開始位置到結束位置的文字。
23 void setColumns(int columns) 設定此TextArea的列數。
24 void setFont(Font f) 設定當前字型。
25 void setLineWrap(boolean wrap) 設定文字區域的換行策略。
26 void setRows(int rows) 設定此TextArea的行數。
27 void setTabSize(int size) 設定展開索引標籤的字元數。
28 void setWrapStyleWord(boolean word) 如果文字區域是換行,則設定使用的換行樣式。

方法繼承

該類繼承以下類中的方法 -

  • javax.swing.text.JTextComponent
  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JTextArea範例

使用編輯器建立以下Java程式 -


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JTextAreaExample {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public JTextAreaExample(){
      prepareGUI();
   }
   public static void main(String[] args){
       JTextAreaExample  swingControlDemo = new JTextAreaExample();      
      swingControlDemo.showTextAreaDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing JTextArea範例");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showTextAreaDemo(){
      headerLabel.setText("Control in action: JTextArea"); 
      JLabel  commentlabel= new JLabel("評論內容: ", JLabel.RIGHT);

      final JTextArea commentTextArea = 
         new JTextArea("這個是一個簡單的Swing JTextArea \n" 
         +" 用於製作使用者圖形介面。",5,20);

      JScrollPane scrollPane = new JScrollPane(commentTextArea);    
      JButton showButton = new JButton("顯示評論");

      showButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {     
            statusLabel.setText( commentTextArea.getText());        
         }
      }); 
      controlPanel.add(commentlabel);
      controlPanel.add(scrollPane);        
      controlPanel.add(showButton);
      mainFrame.setVisible(true);  
   }
}

執行上面範例程式碼,得到以下結果 -

JTextArea