Java Swing JTextArea文本區(qū)域的實(shí)現(xiàn)示例
1. 概述
官方JavaDocsApi: javax.swing.JTextArea
JTextArea,文本區(qū)域。JTextArea 用來(lái)編輯多行的文本。JTextArea 除了允許多行編輯外,其他基本用法和 JTextField 基本一致。
JTextArea 常用構(gòu)造方法:
/** * 參數(shù)說(shuō)明: * text: 默認(rèn)顯示的文本 * rows: 默認(rèn)可見(jiàn)的行數(shù) * columns: 默認(rèn)可見(jiàn)的列數(shù) * * 默認(rèn)由 rows 和 columns 決定首選大小 */ JTextArea() JTextArea(String text) JTextArea(int rows, int columns) JTextArea(String text, int rows, int columns)
JTextArea 常用方法:
// 是否自動(dòng)換行,默認(rèn)為 false void setLineWrap(boolean wrap) // 設(shè)置自動(dòng)換行方式。如果為 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ù)(以換行符計(jì)算,滿行自動(dòng)換下一行不算增加行數(shù)) int getLineCount() // 獲取指定行(行數(shù)從0開(kāi)始)的行尾(包括換行符)在全文中的偏移量 int getLineEndOffset(int line) // 獲取指定偏移量所在的行數(shù)(行數(shù)從0開(kāi)始) int getLineOfOffset(int offset) // 設(shè)置顏色,分別為: 光標(biāo)顏色、呈現(xiàn)選中部分的背景顏色、選中部分文本的顏色、不可用時(shí)文本的顏色 void setCaretColor(Color c) void setSelectionColor(Color c) void setSelectedTextColor(Color c) void setDisabledTextColor(Color c) // 設(shè)置文本框是否可編輯 void setEditable(boolean b) /* 下面方法定義在 java.awt.Component 基類(lèi)中 */ // 判斷組件當(dāng)前是否擁有焦點(diǎn) boolean isFocusOwner() // 設(shè)置組件是否可用 void setEnabled(boolean b)
JTextArea 復(fù)制粘貼相關(guān)方法:
// 設(shè)置光標(biāo)開(kāi)始位置,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)聽(tīng)器:
// 添加焦點(diǎn)事件監(jiān)聽(tīng)器 void addFocusListener(FocusListener listener) // 添加文本框內(nèi)的 文本改變 監(jiān)聽(tīng)器 textField.getDocument().addDocumentListener(DocumentListener listener) // 添加按鍵監(jiān)聽(tīng)器 void addKeyListener(KeyListener listener)
PS: JTextArea 在使用時(shí)通常把它放到 JScrollPane 容器中來(lái)使用,以此來(lái)實(shí)現(xiàn)內(nèi)容增多時(shí)可水平/垂直滾動(dòng)的效果。
2. 代碼實(shí)例
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("測(cè)試窗口"); jf.setSize(250, 250); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel = new JPanel(); // 創(chuàng)建一個(gè) 5 行 10 列的文本區(qū)域 final JTextArea textArea = new JTextArea(5, 10); // 設(shè)置自動(dòng)換行 textArea.setLineWrap(true); // 添加到內(nèi)容面板 panel.add(textArea); // 創(chuàng)建一個(gè)提交按鈕,點(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é)果展示:
輸入內(nèi)容,點(diǎn)擊按鈕,查看控制臺(tái)輸出。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IntelliJ IDEA(2019)之mybatis反向生成的實(shí)現(xiàn)
這篇文章主要介紹了IntelliJ IDEA(2019)之mybatis反向生成,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Java RabbitMQ的工作隊(duì)列與消息應(yīng)答詳解
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03Java JVM字節(jié)碼指令集總結(jié)整理與介紹
本節(jié)將會(huì)著重介紹一下JVM中的指令集、Java是如何跨平臺(tái)的、JVM指令集參考手冊(cè)等內(nèi)容。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Spring Boot集成Druid出現(xiàn)異常報(bào)錯(cuò)的原因及解決
Druid 可以很好的監(jiān)控 DB 池連接和 SQL 的執(zhí)行情況,天生就是針對(duì)監(jiān)控而生的 DB 連接池。本文講述了Spring Boot集成Druid項(xiàng)目中discard long time none received connection異常的解決方法,出現(xiàn)此問(wèn)題的同學(xué)可以參考下2021-05-05Java線程編程中isAlive()和join()的使用詳解
這篇文章主要介紹了Java線程編程中isAlive()和join()的使用詳解,是Java入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09AQS同步組件CyclicBarrier循環(huán)屏障用例剖析
這篇文章主要為大家介紹了AQS同步組件CyclicBarrier循環(huán)屏障用例剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08關(guān)于SpringBoot配置文件application.properties的路徑問(wèn)題
這篇文章主要介紹了關(guān)于SpringBoot配置文件application.properties的路徑問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08