Java JTable 无法设置列宽

2024-02-22

我尝试设置列的宽度,但它根本不起作用,我一直在寻找答案几个小时,这是我的代码,任何人都可以告诉我问题是什么。提前致谢。

    String [] columns = {"Day","StratTime","EndTime","Description"};
    mtbl = new DefaultTableModel();

    tbl = new JTable(mtbl);
    jsPane = new JScrollPane(tbl);

    tbl.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


    for (int i = 0; i < Timedcolumns.length; i++) {
        mtbl.addColumn(columns[i]);
        tbl.getColumnModel().getColumn(i).setPreferredWidth(100);
    }

后果addColumn(), JTable可能最终会重建所有的列。这是来自的一个片段JTable.tableChanged() :

public void tableChanged(TableModelEvent e) {
    if (e == null || e.getFirstRow() == TableModelEvent.HEADER_ROW) {
        ...

        if (getAutoCreateColumnsFromModel()) {
    // This will effect invalidation of the JTable and JTableHeader.
            createDefaultColumnsFromModel();
    return;
    }
        ...

TableModelEvent.HEADER_ROW因以下原因被解雇addColumn()执行者DefaultTableModel. addColumn执行fireTableStructureChanged:

public void fireTableStructureChanged() {
    fireTableChanged(new TableModelEvent(this, TableModelEvent.HEADER_ROW));
} 

您最终只能在添加的最后一列上设置首选大小,因为其余列是由createDefaultColumnsFromModel().

总而言之,在单独的循环中创建所有列后,设置首选大小可能更简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java JTable 无法设置列宽 的相关文章

随机推荐

  • 如何在 R 中编写生成 Pig Latin 的函数

    我正在尝试编写一个函数 该函数接受一个字符串作为参数并用 Pig Latin 打印该字符串 在 PigLatin 中 你将单词的第一个字母移到末尾 然后添加 ay 例如 这很有趣 gt histay asway unfay 我刚刚开始学习
  • 使用 php 析构函数适合显示 HTML 吗?

    如果实现了一个通过构造页面并调用各种方法来为页面构建 HTML 的类 那么在析构函数中定义该类的显示 回显部分是否合适 而不是有一个明确的Class displayHTML 方法 具有echo this gt html在析构函数中以及每当您
  • 在 django 过滤器后端传递模型的所有字段

    有什么办法可以让我们pass all the fields of a model to django filter backend无需显式传递 search fields 和 filter fields 中的字段名称 我制作了一个通用视图集
  • 我想要 50 个随机数组的数据,其中有 5 列和 10 行,具有唯一且无重复值。这里为什么显示重复值?

    Sub Button3 Click Dim FillRange As Range c As Range Set FillRange Range A1 A10 For x 0 To 4 Set FillRange Range A1 A10 O
  • 在保护模式下将字符打印到屏幕 ASM

    我正在尝试进入保护模式 然后打印出 Hi 但相反 它只是从我的 BIOS 中断调用中打印 正在加载操作系统 在进入 pmode 之前发生 而没有其他内容 My 引导加载程序 asm DEFINE KERNEL LOAD OFFSET 0x1
  • 在肖像模式下录制视频时的方向问题 android grafika

    我设置了设备方向Landscape模式 然后它可以完美保存视频 如果我拍摄双方的视频 但我设置了设备方向Portrait模式这个工作很奇怪 例如 下面是我录制视频时的屏幕截图 但是当我保存视频并在 MXPlayer 中查看时 它看起来像这样
  • CSS3 渐变背景,底部有不需要的空白

    当我应用 CSS3 渐变并且内容的高度不足以容纳滚动条时 我很难摆脱底部的空白 比如这里 http womancareolympia webs com http womancareolympia webs com 我尝试过将 html 和
  • 使用 Global.asax 设置/检查会话变量和重定向(用于用户测试)

    我想为我的网站添加非常简单的临时安全性 我在 Home UnderConstruction 上创建了一个页面 测试该站点的人员可以输入硬编码密码 然后将 underconstruction 会话变量设置为 false 这是我到目前为止所拥有
  • HTML 5 视频问题

    我正在尝试将我的网站设置为使用 HTML 5 视频 mp4 文件由 S3 提供 我的 MIME 类型是正确的 并且 URL 也是正确的 但它不起作用 我唯一能想到的是编解码器错误 这是我的代码
  • R - 在 Shiny 应用程序的单个页面上渲染多个绘图

    我正在尝试排列多个图表shiny应用程序 我正在尝试绘制 2 个饼图和 ggplot2 图表 require ggplot2 require gridExtra par mfrow c 2 2 z data frame x 1 10 y 1
  • React Context 不更新值以传递到另一个页面

    我正在创建一个电子商务应用程序Nextjs并希望在页面之间共享数据 我知道我们不能使用props在页面之间传递数据 所以正在研究反应contextAPI 这是我第一次使用 React context api 我研究过 发现你应该在nextj
  • notepad++ 检查重复行复杂

    Example 40000 多行 带有这样的指南 GUID 0981723409871243 在所有 GUID 中搜索重复项 Example GUID 124432408213 GUID 08917234071423 GUID 018974
  • 如何取消设置 C 中的变量以允许稍后使用具有不同数据类型的相同名称?

    我想在 C 程序中使用具有不同数据类型的相同变量名而不进行强制转换 我真的很想这么做 别问为什么 那么我该怎么做呢 如果执行时该变量不存在 我该如何处理错误预防性的取消设置 你不能 您可以获得的最接近的是创建单独的范围并在其中使用相同的变量
  • Qt - 将 QString 转换为 Unicode QByteArray

    我有一个客户端 服务器应用程序 其中客户端将使用 Qt Ubuntu 服务器将使用 C Qt 客户端将以 UTF 16 编码格式发送字符串 我已经使用 QTextCodec 类转换为 UTF 16 但每当转换发生时 它都会被填充一些更多的字
  • 如何获取引发异常的方法名

    我的代码如下所示 try productRepo GetAllProductCategories catch Exception ex Do Something 我需要一种方法来显示方法名称 假设在上述情况下 如果 GetAllProduc
  • XML 属性与元素[重复]

    这个问题在这里已经有答案了 什么时候应该使用 XML 属性以及什么时候应该使用 XML 元素 e g
  • 连接到包含 MS Access Web App 后端的 SQL Azure

    我使用 MS Access 2013 创建了一个简单的 Web 应用程序 它只有一个包含示例数据的表 我将其启动到我的共享点 在我们继续之前 我想告诉您 我正在使用 Office 365 企业版 我们需要管理 Lync SharePoint
  • cherrypy - URL 调度程序 [重复]

    这个问题在这里已经有答案了 可能的重复 在 CherryPy 中使用映射 https stackoverflow com questions 11142625 using mappings in cherrypy 如何将 url 正则表达式
  • 函数的未命名参数可以有默认值吗?

    以下代码在 C 中合法吗 void f void 0 int main f C 标准的哪一页声明这种用法是合法的 是的 这是合法的 没有标准的措辞来具体允许这种功能组合 根本没有任何可以disallow它 要么 默认参数语法适用于 a 中的
  • Java JTable 无法设置列宽

    我尝试设置列的宽度 但它根本不起作用 我一直在寻找答案几个小时 这是我的代码 任何人都可以告诉我问题是什么 提前致谢 String columns Day StratTime EndTime Description mtbl new Def