扩展阅读
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmversion定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getspecname定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getspecversion定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.net类url的类成员方法: toexternalform定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?
  •  
    当前位置:  编程语言>java/jsp

    java命名空间javax.swing类jtable的类成员方法: dolayout定义及介绍

     
        发布时间:2014-2-18  


        本文导语:  dolayout public void dolayout() 使此表布局其行和列。重写的此方法可调整列的大小,以适应包含的父级的大小更改。调整表中一列或多列的大小,以便所有此 jtable 列的总宽度等于表的宽度。 开始布局之前,此方法获取 tableheader ...

    dolayout

    public void dolayout()
    使此表布局其行和列。重写的此方法可调整列的大小,以适应包含的父级的大小更改。调整表中一列或多列的大小,以便所有此 jtable 列的总宽度等于表的宽度。

    开始布局之前,此方法获取 tableheaderresizingcolumn。当由于要调整封闭窗口的大小而调用此方法时,resizingcolumnnull。这意味着调整大小发生在 jtable 的“外部”,并且更改(或 "delta" )应该分布到所有列,无论此 jtable 的自动调整大小模式如何。

    如果 resizingcolumn 不为 null,则它是发生大小更改的表中的一列,而不是表本身。在这种情况下,自动调整大小模式控制额外(或不足)空间在可用列之间的分布方式。

    该模式有:

    • auto_resize_off:不自动调整列的宽度。当列的总宽度超过 viewport 的宽度时,使用水平滚动条来适应列的宽度。如果 jtable 没有封闭在 jscrollpane 中,则可能导致该表的一部分不可见。
    • auto_resize_min iis7站长之家_column:使用被调整列的下一列。这导致相邻单元格之间的“边界”或分隔栏是可独立调整的。
    • auto_resize_subsequent_columns:使用被调整列后面的所有列来吸收所作的更改。这是默认行为
    • auto_resize_last_column:只自动调整最后一列的大小。如果最后一列的边界导致无法分配所需的大小,则将最后一列的宽度设置为适当的界限并且不再做进一步的调整。
    • auto_resize_all_columns:将 delta 分散在 jtable 中的所有列之间,包括正在被调整的列。

    注:jtable 调整列宽时,它绝对遵守其最小值和最大值。但是即使在调用此方法后,列的总宽度仍然可能不等于表的宽度。发生这种情况时,jtable 不会进入 auto_resize_off 模式来生成一个滚动条,或者中断其当前自动调整模式的其他提交,相反,它允许其边界设置为大于(或小于)最大总宽度(或最小总宽度),这意味着要么没有足够的空间来显示所有的列,要么就是列不能填满 jtable 的边界。这将分别导致在绘制期间,某些列将被剪切掉,或者某个区域将被绘制为 jtable 的背景色。

    用于在可用列之间分布 delta 的机制是由 jtable 类中的一个私有方法提供的:

       adjustsizes(long targetsize, final resizable3 r, boolean inverse)
     
    以下部分是对它的解释。resizable3 是一个私有接口,它允许包含元素(具有大小、首选大小、最大大小和最小大小)集合的任何数据结构可以通过该算法来操作其元素。

    分布 delta

    概述

    将 r 中各元素的目标大小与首选大小总和之间的差值称为 "delta"。单独的大小通过将原始首选大小加上 delta 的共享部分来计算,该共享部分基于每个首选大小到其限定边界的距离(最小值或最大值)。

    定义

    单独的约束称为 min[i]、max[i] 和 pref[i]。

    它们相应的和称为:min、max 和 pref。

    用以下公式计算每个新大小:

              size[i] = pref[i] + delta[i]
     
    其中每个单独的 delta[i] 根据以下条件计算:

    如果 (delta < 0),则处于收缩模式,其中:

                            delta
              delta[i] = ------------ * (pref[i] - min[i])
                         (pref - min)
     
    如果 (delta > 0),则处于扩展模式,其中:

                            delta
              delta[i] = ------------ * (max[i] - pref[i])
                          (max - pref)
     

    总体效果是总大小向总的最小值或最大值移动相同的百分比 k,此百分比确保适应所需的间距,即 delta。

    详细信息

    估计此处给出的公式计算易受累积舍入误差的影响,该误差是由此操作的有限精度(使用 int)引起的。为了处理此问题,要经常重新计算上述乘数,这可将以前迭代中的舍入误差考虑在内。结果是一个生成一组整数的算法,这组整数值的和恰好等于提供的 targetsize,这是通过将舍入误差均匀分散到给定元素上来实现的。

    何时选中 max 和 min 边界

    targetsize 处于 [min, max] 范围外时,算法将所有大小设置为其适合的限定值(最大值或最小值)。

    覆盖
    container 中的 dolayout
    另请参见:
    layoutmanager.layoutcontainer(java.awt.container), container.setlayout(java.awt.layoutmanager), container.validate()
    相关文章推荐:
  • java命名空间java.awt类radialgradientpaint的类成员方法: getradius定义及介绍
  • 请问JAVA如何定义常量实行多个JAVA程序共用?
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getallattributekeys定义及介绍
  • java能不定义常量
  • java命名空间java.beans接口propertyeditor的类成员方法: supportscustomeditor定义及介绍
  • java自定义枚举转换器示例
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getattributes定义及介绍
  • 在java里如何定义常量?
  • java命名空间java.util类locale的类成员方法: getisocountries定义及介绍
  • 菜鸟问题:unix中有像windows那样的自定义的环境变量吗?用java如何取
  • java命名空间java.awt类image的类成员方法: undefinedproperty定义及介绍
  • 笨苯问题:java类中如何读取xml中定义的属性信息。
  • java命名空间java.beans接口customizer的类成员方法: setobject定义及介绍
  • 在java中,怎样定义一个"byte"和"int"的变量为"null"
  • java命名空间java.awt类toolkit的类成员方法: createcomponent定义及介绍
  • Java中怎样定义全局变量???
  • java命名空间java.lang类classloader的类成员方法: getpackages定义及介绍
  • java中函数的缺省参数怎么定义?
  • java命名空间java.net类uri的类成员方法: getport定义及介绍
  • java自定义日期转化类示例
  • java命名空间java.net类uri的类成员方法: getrawfragment定义及介绍
  • 在同一个.java文件中定义的Class有什么限制?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3