Swing常用组件之多行文本区JTextArea
单行文本的输入存在严重的缺陷,也不适合实际的运用,本节通过一个无功能的记事本来介绍可以进行多行输入的JTextArea:
JTextArea():创建一个内容为空的文本区
JTextArea(Documentdoc) :创建具有指定文档的文本区
JTextArea(Documentdoc,Stringtext,introws,intcolumns):创建具有指定文档,行数,列数的文本区
JTextArea(introws,intcolumns) :指定行数,列数的文本区
JTextArea(Stringtext) :指定文本内容的文本区
JTextArea(Stringtext,introws,intcolumns) :指定文本内容和行数,列数的文本区
JTextArea的一些常用方法:
publicvoidappend(Stringstr):将给定文本追加到文档结尾。
booleangetLineWrap():获取文本区的换行策略。
publicintgetRows():返回TextArea中的行数。
publicbooleangetWrapStyleWord():获取换行方式(如果文本区要换行)。
publicvoidsetWrapStyleWord(booleanword):设置换行方式(如果文本区要换行)
publicvoidinsert(Stringstr,intpos):将指定文本插入指定位置。
publicvoidsetColumns(intcolumns):设置此TextArea中的列数。
publicvoidsetFont(Fontf):设置当前字体。
publicvoidsetLineWrap(booleanwrap):设置文本区的换行策略。
publicvoidsetRows(introws):设置此TextArea的行数。
publicvoidsetEditable(booleanb):设置文本区的编辑状态。参数为true表示可编辑状态,为false则表示不可编辑状态
将JTextArea放入JScrollPane中,这样就能利用滚动的效果看到输入超过JTextArea高度的文字.
JScrollPane
JscrollPane():创建一个滚动条,水平和垂直都可以显示
JscrollPane(Componentview):创建一个显示指定组件内容的滚动条,当组件的内容超过视图大小就会显示水平和垂直的的滚动条
JscrollPane(Componentview,intvsbPolicy,inthsbPolicy) :创建一个显示指定组件内容的滚动条,且有指定滚动策略的滚动条
JscrollPane(intvsbPolicy,inthsbPolicy) :创建一个有指定滚动策略的滚动条
JscrollPane类的构造方法中使用的滚动条策略主要有以下几种:
publicintgetHorizontalScrollBarPolicy (): 获取水平滚动策略值
publicintgetVerticalScrollBarPolicy() :获取垂直滚动策略值
publicvoidgetHorizontalScrollBarPolicy (): 设置水平滚动策略值
publicvoidgetVerticalScrollBarPolicy() :设置垂直滚动策略值
publicbooleanisWheelScrollingEnabled() :设置是否进行滚动以响应鼠标滚轮
publicvoidsetViewportView(Conponentview):设置滚动条中的滚动组件
publicvoidsetWheelScrollingEnabled(booleanhandleWheel):启动/禁用对鼠标滚轮滚动的移动响应
代码实例:
packagech10; importjava.awt.event.*; importjavax.swing.*; publicclassNoteTextAreaextendsJFrameimplementsActionListener { privateJPaneljp=newJPanel(); JButtonjb1=newJButton("点我自动换行"); JButtonjb2=newJButton("点我不换行"); privateJTextAreajt=newJTextArea(); privateJScrollPanejs=newJScrollPane(jt); publicNoteTextArea() { 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(inti=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); } publicvoidactionPerformed(ActionEventa) { if(a.getSource()==jb1) { jt.setLineWrap(true); } elseif(a.getSource()==jb2) { jt.setLineWrap(false); } } publicstaticvoidmain(Stringargs[]) { newNoteTextArea(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助。