欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Swing常用组件之多行文本区JTextArea

程序员文章站 2024-03-11 11:33:07
单行文本的输入存在严重的缺陷,也不适合实际的运用,本节通过一个无功能的记事本来介绍可以进行多行输入的jtextarea: jtextarea():创建一个内容为空的文本区...

单行文本的输入存在严重的缺陷,也不适合实际的运用,本节通过一个无功能的记事本来介绍可以进行多行输入的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):启动/禁用对鼠标滚轮滚动的移动响应

代码实例:

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

 以上就是本文的全部内容,希望对大家的学习有所帮助。