溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java Swing JTextArea文本區(qū)域的實現(xiàn)示例

發(fā)布時間:2020-09-19 00:01:02 來源:腳本之家 閱讀:474 作者:xietansheng 欄目:編程語言

1. 概述

官方JavaDocsApi: javax.swing.JTextArea

JTextArea,文本區(qū)域。JTextArea 用來編輯多行的文本。JTextArea 除了允許多行編輯外,其他基本用法和 JTextField 基本一致。

JTextArea 常用構(gòu)造方法:

/**
 * 參數(shù)說明:
 *   text: 默認(rèn)顯示的文本
 *   rows: 默認(rèn)可見的行數(shù)
 *   columns: 默認(rèn)可見的列數(shù)
 *   
 * 默認(rèn)由 rows 和 columns 決定首選大小
 */
JTextArea()

JTextArea(String text)

JTextArea(int rows, int columns)

JTextArea(String text, int rows, int columns)

 JTextArea 常用方法:

// 是否自動換行,默認(rèn)為 false
void setLineWrap(boolean wrap)

// 設(shè)置自動換行方式。如果為 true,則將在單詞邊界(空白)處換行; 如果為 false,則將在字符邊界處換行。默認(rèn)為 false。
void setWrapStyleWord(boolean word)

// 獲取文本框中的文本
String getText()

// 追加文本到文檔末尾
void append(String str)

// 替換部分文本
void replaceRange(String str, int start, int end)

// 設(shè)置文本框的 文本、字體 和 字體顏色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)

// 獲取內(nèi)容的行數(shù)(以換行符計算,滿行自動換下一行不算增加行數(shù))
int getLineCount()

// 獲取指定行(行數(shù)從0開始)的行尾(包括換行符)在全文中的偏移量
int getLineEndOffset(int line)

// 獲取指定偏移量所在的行數(shù)(行數(shù)從0開始)
int getLineOfOffset(int offset)

// 設(shè)置顏色,分別為: 光標(biāo)顏色、呈現(xiàn)選中部分的背景顏色、選中部分文本的顏色、不可用時文本的顏色
void setCaretColor(Color c)
void setSelectionColor(Color c)
void setSelectedTextColor(Color c)
void setDisabledTextColor(Color c)

// 設(shè)置文本框是否可編輯
void setEditable(boolean b)

/* 下面方法定義在 java.awt.Component 基類中 */

// 判斷組件當(dāng)前是否擁有焦點(diǎn)
boolean isFocusOwner()

// 設(shè)置組件是否可用
void setEnabled(boolean b)

JTextArea 復(fù)制粘貼相關(guān)方法:

// 設(shè)置光標(biāo)開始位置,selectionStart >= 0
void setSelectionStart(int selectionStart)

// 設(shè)置光標(biāo)結(jié)束位置,selectionEnd >= selectionStart
void setSelectionEnd(int selectionEnd)

// 復(fù)制選中部分文本
void copy()

// 剪切選中部分文本
void cut()

// 粘貼文本到文本框
void paste()

JTextArea 常用監(jiān)聽器:

// 添加焦點(diǎn)事件監(jiān)聽器
void addFocusListener(FocusListener listener)

// 添加文本框內(nèi)的 文本改變 監(jiān)聽器
textField.getDocument().addDocumentListener(DocumentListener listener)

// 添加按鍵監(jiān)聽器
void addKeyListener(KeyListener listener)

PS: JTextArea 在使用時通常把它放到 JScrollPane 容器中來使用,以此來實現(xiàn)內(nèi)容增多時可水平/垂直滾動的效果。

2. 代碼實例

package com.xiets.swing;

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

public class Main {

  public static void main(String[] args) {
    JFrame jf = new JFrame("測試窗口");
    jf.setSize(250, 250);
    jf.setLocationRelativeTo(null);
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    // 創(chuàng)建一個 5 行 10 列的文本區(qū)域
    final JTextArea textArea = new JTextArea(5, 10);
    // 設(shè)置自動換行
    textArea.setLineWrap(true);
    // 添加到內(nèi)容面板
    panel.add(textArea);

    // 創(chuàng)建一個提交按鈕,點(diǎn)擊按鈕獲取輸入文本
    JButton btn = new JButton("提交");
    btn.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        System.out.println("提交: " + textArea.getText());
      }
    });
    panel.add(btn);

    jf.setContentPane(panel);
    jf.setVisible(true);
  }

}

結(jié)果展示:

Java Swing JTextArea文本區(qū)域的實現(xiàn)示例

輸入內(nèi)容,點(diǎn)擊按鈕,查看控制臺輸出。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI