单行文本的输入存在严重的缺陷,也不适合实际的运用,本节通过一个无功能的记事本来介绍可以进行多行输入的JTextArea:
JTextArea():创建一个内容为空的文本区
JTextArea(Document doc) :创建具有指定文档的文本区
JTextArea(Document doc,String text,int rows,int columns) :创建具有指定文档,行数,列数的文本区
JTextArea(int rows,int columns) :指定行数,列数的文本区
JTextArea(String text) :指定文本内容的文本区
JTextArea(String text,int rows,int columns) :指定文本内容和行数,列数的文本区
JTextArea 的一些常用方法:
public void append(String str) :将给定文本追加到文档结尾。
boolean getLineWrap() :获取文本区的换行策略。
public int getRows() :返回 TextArea 中的行数。
public boolean getWrapStyleWord() :获取换行方式(如果文本区要换行)。
public void setWrapStyleWord(boolean word) :设置换行方式(如果文本区要换行)
public void insert(String str, int pos) :将指定文本插入指定位置。
public void setColumns(int columns) :设置此 TextArea 中的列数。
public void setFont(Font f) :设置当前字体。
public void setLineWrap(boolean wrap) :设置文本区的换行策略。
public void setRows(int rows) :设置此 TextArea 的行数。
public void setEditable(boolean b):设置文本区的编辑状态。参数为true表示可编辑状态,为false则表示不可编辑状态
将JTextArea放入JScrollPane中,这样就能利用滚动的效果看到输入超过JTextArea高度的文字.
JScrollPane
JscrollPane() :创建一个滚动条,水平和垂直都可以显示
JscrollPane(Component view) : 创建一个显示指定组件内容的滚动条,当组件的内容超过视图大小就会显示水平和垂直的的滚动条
JscrollPane(Component view,int vsbPolicy,int hsbPolicy) :创建一个显示指定组件内容的滚动条,且有指定滚动策略的滚动条
JscrollPane(int vsbPolicy,int hsbPolicy) :创建一个有指定滚动策略的滚动条
JscrollPane类的构造方法中使用的滚动条策略主要有以下几种:
public int getHorizontalScrollBarPolicy (): 获取水平滚动策略值
public int getVerticalScrollBarPolicy() :获取垂直滚动策略值
public void getHorizontalScrollBarPolicy (): 设置水平滚动策略值
public void getVerticalScrollBarPolicy() :设置垂直滚动策略值
public boolean isWheelScrollingEnabled() : 设置是否进行滚动以响应鼠标滚轮
public void setViewportView(Conponent view) :设置滚动条中的滚动组件
public void setWheelScrollingEnabled(boolean handleWheel):启动/禁用对鼠标滚轮滚动的移动响应
代码实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package ch10;
import java.awt.event.*;
import javax.swing.*;
public class NoteTextArea extends JFrame implements ActionListener
{
private JPanel jp = new JPanel ();
JButton jb1 = new JButton( "点我自动换行" );
JButton jb2 = new JButton( "点我不换行" );
private JTextArea jt = new JTextArea();
private JScrollPane js = new JScrollPane(jt);
public NoteTextArea()
{
jp.setLayout( null );
jb1.setBounds( 40 , 40 , 180 , 20 );
jb2.setBounds( 280 , 40 , 180 , 20 );
jp.add(jb1);
jp.add(jb2);
jb1.addActionListener( this );
jb2.addActionListener( this );
js.setBounds( 40 , 80 , 420 , 100 );
jp.add(js);
jt.setLineWrap( false );
for ( int i= 0 ;i< 30 ;i++)
{
jt.append( "自动换行,不换行!" );
}
this .add(jp);
this .setBounds( 80 , 80 , 300 , 300 );
this .setVisible( true );
this .setTitle( "记事本多行文本区" );
this .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent a)
{
if (a.getSource()==jb1)
{
jt.setLineWrap( true );
}
else if (a.getSource()==jb2)
{
jt.setLineWrap( false );
}
}
public static void main(String args[])
{
new NoteTextArea();
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助。