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();
}
}
效果图如下: