Java:JTextArea类

Posted 000紫外线000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:JTextArea类相关的知识,希望对你有一定的参考价值。

JTextArea文本域组件,其实跟JTextField文本框组件的使用非常相似,只不过文本框是一行,但文本域可以是多行。

JTextArea类所在包

JPasswordField类的所在包不用说大家都知道是javax.swing包了,所以开头导入。

import javax.swing.*;

JTextArea类构造方法

public JTextArea();
public JTextArea(String text);
public JTextArea(int rows, int columns);
public JTextArea(String text, int rows, int columns);

主要的构造方法就这些,这里简单说一下text就是文本域中的初始内容,rows和columns分别代表文本域的行数和列数。

JTextArea类使用方法

JTextArea的使用真的可以说跟JTextField极为相似,先是设置文本,下面的代码就是将文本域的内容设置为字符串text。如果你想清空所有文本,其实就是将文本设置为一个空串,即让text = ""。

text_area.setText(text);

接下来是追加文本的方法,就是在当前文本的后面追加一个字符串text,实现起来很简单。

text_area.append(text)

之后是将焦点重新转移到文本域,因为当你点完按钮后,焦点就到了按钮,如果要继续在文本域内输入需要点一下文本域才能继续编辑,所以JTextArea类又提供了一个方法来帮助你将焦点重新回到文本域。

text_area.requestFocus();

下一个方法是用来获取当前文本域内的文本的,返回的是一个字符串。

String str = text_area.getText();

最后一个方法是来设置自动换行的,默认情况下我们会发现如果我们输入到头了,文本域不会自动为你换行,所以为了让文本域在一行到头时自动换行,JTextArea类又提供了一个方法来解决这个问题。这里的flag为一个boolean类型的值,如果为true则设置自动换行,否则是取消自动换行。

text_area.setLineWrap(flag);

代码

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

public class MyFirstTextArea extends JFrame {
    final static long serialVersionUID = 1L;
    JPanel panel_center = new JPanel(), panel_south = new JPanel();
    Container container = getContentPane();
    JTextArea text_area = new JTextArea("文本域", 10, 20);
    JButton clear_button = new JButton("清空"), laugh_button = new JButton("哈哈"), system_button = new JButton("记录");
    
    public MyFirstTextArea()
    {
        super("JFrame窗体");
        this.setBounds(200, 100, 400, 300);
        text_area.setLineWrap(true);
        clear_button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                text_area.setText("");
                text_area.requestFocus();
            }
        });
        laugh_button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                text_area.append("233");
                text_area.requestFocus();
            }
        });
        system_button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                System.out.println(text_area.getText());
                System.out.println("====================================");
                text_area.requestFocus();
            }
        });
        panel_center.add(text_area);
        panel_south.setLayout(new FlowLayout(FlowLayout.CENTER, 25, 20));
        panel_south.add(clear_button);
        panel_south.add(laugh_button);
        panel_south.add(system_button);
        container.setLayout(new BorderLayout());
        container.add(panel_center, BorderLayout.CENTER);
        container.add(panel_south, BorderLayout.SOUTH);
        this.setVisible(true);
    }
    
    public static void main(String[] args) {
        new MyFirstTextArea();
    }
}

效果图如下:

技术图片

以上是关于Java:JTextArea类的主要内容,如果未能解决你的问题,请参考以下文章

Java Netbeans 8.0 Jframe GUI程序 - arraylist中的每个索引值都没有显示在jtextArea中的各行上

Java / Swing:JScrollPane中的JTextArea,如何防止自动滚动?

JTextArea:居中对齐

java swing 怎么同时读取多个txt文档,然后一对一的给对应的JTextArea

如何在 Java GUI 中设置 JTextArea 的自动滚动?

elasticsearch代码片段,及工具类SearchEsUtil.java