栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JTextArea setText(veryLongString)花费太多时间

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JTextArea setText(veryLongString)花费太多时间

在与构造GUI分开的单独线程中创建DefaultStyleddocument似乎是创建巨大文本区域的最快方法。DefaultStyleddocument是线程安全的。

这是我用来测试DefaultStyleddocument的代码。我用空格创建了文本,以便换行的Swing代码有机会工作。

package com.ggl.testing;import java.util.Random;import javax.swing.Jframe;import javax.swing.JScrollPane;import javax.swing.Jtextarea;import javax.swing.SwingUtilities;import javax.swing.text.BadLocationException;import javax.swing.text.DefaultStyleddocument;public class Hugetextarea implements Runnable {    private DefaultStyleddocument   document;    private Jframe       frame;    private Jtextarea    textarea;    public Hugetextarea() {        this.document = new DefaultStyleddocument();        Runnable runnable = new Runnable() { @Override public void run() {     buildLongString(400000); }        };        new Thread(runnable).start();    }    @Override    public void run() {        frame = new Jframe();        frame.setTitle("Huge Text");        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        textarea = new Jtextarea(document);        textarea.setLineWrap(true);        frame.add(new JScrollPane(textarea));        frame.setSize(400, 350);        frame.setLocationRelativeTo(null);        frame.setVisible(true);    }    private void buildLongString(int length) {        Random random = new Random();        String[] chars = { "s", "t", "a", "y", " " };        for (int i = 0; i < length; i++) { try {     document.insertString(document.getLength(),  chars[random.nextInt(chars.length)],  null); } catch (BadLocationException e) {     e.printStackTrace(); }        }    }    public static void main(String[] args) {        SwingUtilities.invokeLater(new Hugetextarea());    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号