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

抽象表模型getValueAt性能

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

抽象表模型getValueAt性能

有1000个学生(行)和4个字段(列),我们将运行此开关4000次。

前提是错误的,但是您应该进行概要验证。

JTable
使用
flyweight模式

进行单元渲染,因此仅检查
_可见_单元。这个简化的示例说明了基本机制。这个相关的示例可以]很好地扩展到数千行。

如果是Java2D的粉丝;但是为了在Swing组件和布局中最大程度地利用HTML,我建议您使用@camickr建议的组件方法。如果必要的话,可以使用轻量级渲染方法中所看到的JTable,等人,其中单个组件重复用于绘制。下面的示例是该技术的非常简化的概述,仅更改了颜色和位置。

附录:更新示例;另请参阅CellRendererPane并让您的应用程序飞起来:实施Flyweight以提高性能。

import java.awt.Color;import java.awt.Dimension;import java.awt.EventQueue;import java.awt.Graphics;import javax.swing.CellRendererPane;import javax.swing.Jframe;import javax.swing.JLabel;import javax.swing.JPanel;public class PaintComponentTest extends JPanel {    private static final int N = 8;    private static final String s = "<html><big><u>Hello</u></html>";    private JLabel renderer = new JLabel(s);    private CellRendererPane crp = new CellRendererPane();    private Dimension dim;    public PaintComponentTest() {        this.setBackground(Color.black);        dim = renderer.getPreferredSize();        this.add(crp);    }    @Override    protected void paintComponent(Graphics g) {        super.paintComponent(g);        for (int i = 0; i < N; i++) { renderer.setForeground(Color.getHSBColor((float) i / N, 1, 1)); crp.paintComponent(g, renderer, this,     i * dim.width, i * dim.height, dim.width, dim.height);        }    }    private void display() {        Jframe f = new Jframe("PaintComponentTest");        f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        f.add(this);        f.pack();        f.setSize(dim.width * N, dim.height * (N + 1));        f.setLocationRelativeTo(null);        f.setVisible(true);    }    public static void main(String[] args) {        EventQueue.invokeLater(new Runnable() { @Override public void run() {     new PaintComponentTest().display(); }        });    }}


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

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

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