当前位置: 首页 > 编程笔记 >

Java Swing JTextArea文本区域的实现示例

罗学真
2023-03-14
本文向大家介绍Java Swing JTextArea文本区域的实现示例,包括了Java Swing JTextArea文本区域的实现示例的使用技巧和注意事项,需要的朋友参考一下

1. 概述

官方JavaDocsApi: javax.swing.JTextArea

JTextArea,文本区域。JTextArea 用来编辑多行的文本。JTextArea 除了允许多行编辑外,其他基本用法和 JTextField 基本一致。

JTextArea 常用构造方法:

/**
 * 参数说明:
 *   text: 默认显示的文本
 *   rows: 默认可见的行数
 *   columns: 默认可见的列数
 *   
 * 默认由 rows 和 columns 决定首选大小
 */
JTextArea()

JTextArea(String text)

JTextArea(int rows, int columns)

JTextArea(String text, int rows, int columns)

 JTextArea 常用方法:

// 是否自动换行,默认为 false
void setLineWrap(boolean wrap)

// 设置自动换行方式。如果为 true,则将在单词边界(空白)处换行; 如果为 false,则将在字符边界处换行。默认为 false。
void setWrapStyleWord(boolean word)

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

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

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

// 设置文本框的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)

// 获取内容的行数(以换行符计算,满行自动换下一行不算增加行数)
int getLineCount()

// 获取指定行(行数从0开始)的行尾(包括换行符)在全文中的偏移量
int getLineEndOffset(int line)

// 获取指定偏移量所在的行数(行数从0开始)
int getLineOfOffset(int offset)

// 设置颜色,分别为: 光标颜色、呈现选中部分的背景颜色、选中部分文本的颜色、不可用时文本的颜色
void setCaretColor(Color c)
void setSelectionColor(Color c)
void setSelectedTextColor(Color c)
void setDisabledTextColor(Color c)

// 设置文本框是否可编辑
void setEditable(boolean b)

/* 下面方法定义在 java.awt.Component 基类中 */

// 判断组件当前是否拥有焦点
boolean isFocusOwner()

// 设置组件是否可用
void setEnabled(boolean b)

JTextArea 复制粘贴相关方法:

// 设置光标开始位置,selectionStart >= 0
void setSelectionStart(int selectionStart)

// 设置光标结束位置,selectionEnd >= selectionStart
void setSelectionEnd(int selectionEnd)

// 复制选中部分文本
void copy()

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

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

JTextArea 常用监听器:

// 添加焦点事件监听器
void addFocusListener(FocusListener listener)

// 添加文本框内的 文本改变 监听器
textField.getDocument().addDocumentListener(DocumentListener listener)

// 添加按键监听器
void addKeyListener(KeyListener listener)

PS: JTextArea 在使用时通常把它放到 JScrollPane 容器中来使用,以此来实现内容增多时可水平/垂直滚动的效果。

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();

    // 创建一个 5 行 10 列的文本区域
    final JTextArea textArea = new JTextArea(5, 10);
    // 设置自动换行
    textArea.setLineWrap(true);
    // 添加到内容面板
    panel.add(textArea);

    // 创建一个提交按钮,点击按钮获取输入文本
    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);
  }

}

结果展示:

输入内容,点击按钮,查看控制台输出。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我遇到的问题是诸如’/’或’!’之类的字符 要么 ‘。’ 显示在左侧。 我只需要从右到左绘制文本,但是使用标准的,西方的,英语从左到右的符号表示文本字符。 如果不手动呈现文本,这可能吗? 问题答案: 我无法产生您的问题,能否请您使用我的SSCCE用于左侧显示。 从代码

  • 我有一个如下的文本区域, 我需要突出显示或选择所有文本“Highlight me”。我没有找到任何方法来突出显示文本区域中的文本。此外,我在JavaFX中找不到任何其他API可以突出显示特定文本或字母的出现,例如Swing中的JTextArea。有人可以建议我如何在文本区域突出显示字符串吗?或者除了JavaFX中的这个文本区域之外,还有其他API可用吗? 我的代码: 预期输出: 线条应以以下任何颜

  • 如何将用户键入的文本拼写检查到TextArea? 这个JavaFX组件可以做到这一点吗? 我可以使用标准拼写检查从JavaJavaFX?

  • 问题内容: 假设我有两个文本区域… 文字区1 文字区2 我希望能够从在文本区域2中键入的文本之后的文本中添加文本。例如:如果我写“我的名字叫乔”。在textarea中,它会同时复制并写“我的名字叫乔”。在现有的“ Hi There”之后的两个文本区域中。文本。 结果将是… 我可以使用jQuery还是需要使用AJAX这样做?我将如何去做? 问题答案: 绑定到事件时,您会注意到延迟。通常绑定到事件时,

  • 这个题是从叶落为重生的一篇博客上看到的,觉得挺有想法,就整理了下,做个记录。 记录思路,不考虑兼容性。 题干如题,实现一个椭圆可点区域 分析与思考 思路一:DOM + border-radius 看到题后我的第一反应就是这个,但发现题主并没有采用border-radius的方式,以为这样行不通,自己试了下,是可以的。这个思路很简单,也很实用,就普通用border-radius实现一个椭圆的div,

  • 问题内容: 我知道保存文本区域时,可以使用nl2br()或str_replace来将/ n更改为br标签等。但是,我不确定如何在文本区域中插入换行符。我似乎找不到很多关于将那些带有换行符的数据放回文本区域的信息。 例如,我有一个表单,用户可以在其中更新字段。因此,用户可以输入: 将其保存到数据库后,将另存为: 现在,当用户在页面刷新后返回该表单时,通过从数据库中获取数据,所有字段将自动使用其先前的