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

所属分类: 软件编程 / java 阅读数: 37
收藏 0 赞 0 分享

单行文本的输入存在严重的缺陷,也不适合实际的运用,本节通过一个无功能的记事本来介绍可以进行多行输入的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(); 
 } 
}

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

更多精彩内容其他人还在看

Springmvc restful配置遇到的小坑

本文是小编给大家带了的Springmvc restful配置遇到的小小坑,小编给大家带来了问题原因及解决办法,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
收藏 0 赞 0 分享

Java中的匿名内部类小结

java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。这篇文章主要介绍了Java中的匿名内部类的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java的云打印Lodop

这篇文章主要介绍了Java的云打印Lodop 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java线程池框架核心代码解析

这篇文章主要针对Java线程池框架核心代码进行详细解析,分析Java线程池框架的实现ThreadPoolExecutor,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java 交换两个变量的数值实现方法

下面小编就为大家带来一篇Java 交换两个变量的数值实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

全面了解JAVA_BaseDAO数据处理类

下面小编就为大家带来一篇全面了解JAVA_BaseDAO数据处理类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java、python、JavaScript以及jquery循环语句的区别

本篇文章主要介绍java、python、JavaScript以及jquery的循环语句的区别,这里整理了它们循环语句语法跟示例,以便大家阅读,更好的区分它们的不同
收藏 0 赞 0 分享

基于JDBC封装的BaseDao(实例代码)

下面小编就为大家带来一篇基于JDBC封装的BaseDao(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

简单通用JDBC辅助类封装(实例)

下面小编就为大家带来一篇简单通用JDBC辅助类封装(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

浅谈java线程中生产者与消费者的问题

下面小编就为大家带来一篇浅谈java线程中生产者与消费者的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多