ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:18.20KB ,
资源ID:16570067      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16570067.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(构造JTextArea组件Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

构造JTextArea组件Word格式文档下载.docx

1、JLabel l1=new JLabel(一:JLabel l2=new JLabel(二:JLabel l3=new JLabel(三:JLabel l4=new JLabel(四:JTextArea t1=new JTextArea();JTextArea t2=new JTextArea(2,8);JTextArea t3=new JTextArea(JTextArea3JTextArea t4=new JTextArea(JTextArea4,5,10);t1.setText(/setText()方法会将原来的内容清除t2.append(JTextArea2/append()方法会将设

2、置的字符串接在原来JTextArea内容文字之后.t4.setLineWrap(true);/设置换行gbc.gridy=1;gbc.gridx=0;p1.add(l1,gbc);gbc.gridx=1;p1.add(t1,gbc);gbc.gridy=2;p1.add(l2,gbc);p1.add(t2,gbc);gbc.gridy=3;p1.add(l3,gbc);p1.add(t3,gbc);gbc.gridy=4;p1.add(l4,gbc);p1.add(t4,gbc);contentPane.add(p1);f.pack();f.show();f.addWindowListener

3、(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););在JTextArea中我们可以使用setTabSize()方法设置Tab键的跳离距离,或是setFont()方法设置字体。当我们输入的文字超过JTextArea的右边界及下边界时,会看不到接下来打的内容,那该怎么办呢?你可以使用JScrollPane使JTextArea具备滚动的能力,或是搭配setLineWrap()方法就能让文字自动换行。JTextArea还提供一个setWrapStyleWord()方法,可以让换行的时候不会造成断字的现

4、象,这在Word或使用OutLook写信时都可以看到这个效果。例如我们在行尾中输入“自动换行”四个字,但此行最多只能在容纳两个字,因此JTextArea会将此四个字均移到下一行,不会造成“自动”在上行,换行在下行的情形。这在处理英文输入上较为重要,因为setWrapStyleWord()是利用空白当作是一个字输入的结果。我们来看下面的范例:public class JTextArea2p1.setLayout(new GridLayout(1,1);构造TextArea使用GridLayout,加ScrollBarJTextArea t1=new JTextArea(5,25);t1.setT

5、abSize(10);t1.setFont(new Font(标楷体,Font.BOLD,16);t1.setLineWrap(true);/激活自动换行功能t1.setWrapStyleWord(true);/激活断行不断字功能p1.add(new JScrollPane(t1);/将JTextArea放入JScrollPane中,这样就能利用滚动的效果看到输入超过JTextArea高度的/文字.我们再举一个例子,使JTextArea具有copy、paste、cut的功能:public class JTextArea3 implements ActionListenerJTextArea t

6、extarea=null;JButton b1,b2,b3;public JTextArea3()textarea=new JTextArea(10,15);JScrollPane scrollPane=new JScrollPane(textarea);JPanel panel=new JPanel();panel.setLayout(new GridLayout(1,3);b1=new JButton(Copyb1.addActionListener(this);b2=new JButton(Pasteb2.addActionListener(this);b3=new JButton(Cu

7、tb3.addActionListener(this);panel.add(b1);panel.add(b2);panel.add(b3);contentPane.add(scrollPane,BorderLayout.CENTER);contentPane.add(panel,BorderLayout.SOUTH);new JTextArea3();public void actionPerformed(ActionEvent e)if (e.getSource()=b1)textarea.copy();if (e.getSource()=b2)textarea.paste();if (e.

8、getSource()=b3)textarea.cut();9-4-2:JTextArea的事件处理:由于JTextArea是一个二维的输入组件,因此Enter键在JTextArea中代表的意义只是单纯的换行字符而不再是一个事件驱动的切入点。那么我们该如何来处理JTextArea的事件呢?还记得我们在前面介绍过Listener的机制吗?相同的,我们一样需要使用Listener的机制来处理发生在JTextArea中的事件,只是不再是以前提到的ActionListener了。在JTextArea中使用的Listener有两种,一个是UndoableEditListener,另一个是Document

9、Listener.UndoableEditListener interface是负责纪录JTextArea中所有操作发生的顺序并且可以运行还原上一步的功能。这个功能在目前的软件中应用相当广泛,如文书编辑软件Word中的复原功能、小画家中的复原功能,相信大家都有使用过。DocumentListener interface则是纪录发生在JTextArea中所有的事件(如键入字符、删除字符、剪下、贴上)并将所有的事件以树状的层次式结构组织起来;也就是说当JTextArea中的内容有任何变动时,会DocumentEvent,此时必须使用DocumentListener接口中的方法来处理此事件。我们来看

10、下面这个范例,使JTextArea具有复原的功能:/*由于会使用到复原和事件驱动功能,因此需要将javax.swing.undo和javax.swing.event两个package包含进来*/import javax.swing.undo.*;import javax.swing.event.*;/*JTextArea4类继承JFrame类并实作UndoableEditListener interface.实作UndoableEditListener interface就必须要编写其中的*undoableEditHappened().public class JTextArea4 exten

11、ds JFrame implements UndoableEditListenerprivate UndoableEdit edit;private JTextArea jta;private JTextArea message;private JMenuItem undoitem;private JMenuItem redoitem;public JTextArea4()super(jta = new JTextArea();jta.getDocument().addUndoableEditListener(this);/将JTextArea加入UndoableEditListener.me

12、ssage = new JTextArea();message.setEditable(false);/利用setEditable()方法将另一个JTextArea设置为不可编辑.JPanel p1 = new JPanel();Edit Areap1.add(new JScrollPane(jta);/-begin:分别将两个JTextArea通过JPanel放到JFrame中。JPanel p2 = new JPanel();p2.setLayout(new GridLayout(1,1);p2.setBorder(BorderFactory.createTitledBorder(Mess

13、agep2.add(new JScrollPane(message);getContentPane().setLayout(new GridLayout(2,1);getContentPane().add(p1);getContentPane().add(p2);/-end/建立目录菜单并放置到JFrame中.JMenuBar bar = new JMenuBar();JMenu theMenu = new JMenu(Editundoitem = new JMenuItem(Undoredoitem = new JMenuItem(RedotheMenu.add(undoitem);theM

14、enu.add(redoitem);bar.add(theMenu);updateMenuItem();/构造目录菜单setJMenuBar(bar);setSize(300,300);/采用inner class方式,分别构造菜单选项被点选后的运行操作。分别调用undo(),redo()方法来完成.undoitem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ev)edit.undo();/运行undo功能message.append(- Undo -nredoitem.addAc

15、tionListener(new ActionListener()edit.redo();/运行redo功能- Redo -n/end of JTextArea4()public void undoableEditHappened(UndoableEditEvent ev)StringBuffer buf = new StringBuffer(200);/*当用户在Text Area中有所操作时,就可以用getEdit()方法取得UndoableEdit对象,此对象纪录着刚刚用户的操作,因*此可由些对象的undo()或redo()达到取消或复原的功能.edit = ev.getEdit();b

16、uf.append(undoableEdit:buf.append(edit.getPresentationName();nmessage.append(buf.toString();/end of undoableEditHappened()/判断是否此时是否可以运行undo或redo的功能,并且改变目录菜单的状态值.public void updateMenuItem()if (edit != null)undoitem.setEnabled(edit.canUndo();redoitem.setEnabled(edit.canRedo();undoitem.setText(edit.ge

17、tUndoPresentationName();redoitem.setText(edit.getRedoPresentationName();elseundoitem.setEnabled(false);redoitem.setEnabled(false);undoitem.setText(redoitem.setText(/end of updateMenu()public static void main(String args) JFrame f = new JTextArea4();f.addWindowListener(new WindowAdapter() public void

18、 windowClosing(WindowEvent e) /end of main()/end of class JTextArea4我们在前面提到Enter键在JTextArea中不再是事件驱动的切入点,因此我们要利用Listener的机制来控制JTextArea的事件驱动。但是,我们要怎么样知道在JTextArea中的数据内容呢?这就要了解JTextArea的存储模式了,JTextArea把输入区内的每一行当成一个独立的单无(Element),并依照Document内规划的树状结构来存储,也就是说在JTextArea的第一行属于Element 0、第二行属于Element 1、第三行属于

19、Element 2等等。不论我们在费心的去处理。接下来我们来看看,Element和DocumentListener interface的用法。我们改写JTextArea4.java加入DocumentListener,将程序存储为JTextArea5.java.import javax.swing.text.*;public class JTextArea5 extends JFrame implements UndoableEditListener,DocumentListenerpublic JTextArea5()JTextAreajta=new JTextArea();jta.getDocument().addDocumentListener(this); /end of JTextArea5messag

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1