小编LDM*_*M91的帖子

如何获取JTable列的标头组件的最小首选宽度,以使其不能调整为小于值的大小?

我试图阻止我的JTable重新调整大小,使标题小于他们持有的文本的大小.我遇到的问题是,我得到的每个标头组件的最小首选宽度只有10,当每个标头组件中的值是"标头1","标头2","标头3"等时,这显然太小了上.

我花了很多时间搜索SO并尝试实现各种建议,但尚未设法遇到解决方案.请查看我正在使用的当前代码作为扩展JTable的一部分:

public class MyTable extends JTable {

private Map<Integer, Integer> minSizeMap;

public void calculateMinColumnSizes() {

    int width = 0;
    int row = 0;
    minSizeMap = new HashMap<Integer, Integer>();

    for (int column = 0; column < columnModel.getColumnCount(); column++) {
        TableColumn tableColumn = columnModel.getColumn(column);
        TableCellRenderer renderer = tableColumn.getCellRenderer();
        Component comp = this.prepareRenderer(renderer, row, column);
        width = Math.max(comp.getPreferredSize().width, width);
        minSizeMap.put(tableColumn.getModelIndex(), width);
    }
   }
}
Run Code Online (Sandbox Code Playgroud)

原始代码来自kleopatra对如何将JTable列调整为字符串长度的答案,但是我已经更改了部件,因为我只想获得每个列标题的最小首选宽度,并在调整大小后存储它以供以后比较.

在调用方法之前已经设置了所有模型,所以当TableColumn的minWidth和preferredWidth默认值分别为15和75时,我对组件首选宽度的得分感到有点困惑.

关于我做了什么/理解错误的任何想法?

java swing header jtable tablecolumn

4
推荐指数
1
解决办法
2481
查看次数

霍夫曼编码 - 标头和 EOF

我目前正在致力于在 Java 中实现基于霍夫曼算法的程序,并且我正处于需要将编码内容输出到文件的阶段。我对如何实现解码所需的标头和 eof 有点困惑。对于目前的标题,我拥有输入文件中出现的所有唯一值及其频率,但在一些文章中,我看到人们用 0 或 1 表示节点,然后是频率(我有点困惑) by 因为它没有说明符号是什么)。

另外,对于我所理解的 EOF,我像符号一样对其进行编码,以便读取和解码,但是我不确定我可以使用什么值来肯定不会出现?我知道它的权重需要为 1,但不确定如何确保它实际上不在文件中。

algorithm encoding header huffman-code eof

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

header ×2

algorithm ×1

encoding ×1

eof ×1

huffman-code ×1

java ×1

jtable ×1

swing ×1

tablecolumn ×1