Java:无法将 Gridlayout 应用于 Jscrollpane。获取 获取 java.lang.ClassCastException

2023-12-02

我使用 Gridlayout 将 4 个元素放置在一行中。首先我有一个 JPanel,一切工作正常。对于行数变大并且我必须能够向下滚动的情况,我对其进行了一些更改。现在我有了我的JPanel与一个JScrollPane添加了它。我使用了相同的代码,现在我只需将元素添加到Jscrollpane,但现在我得到了这个例外Get java.lang.ClassCastException: layout of JScrollPane must be a ScrollPaneLayout: at javax.swing.JScrollPane.setLayout(Unknown Source)我不知道为什么。为什么 Gridlayout 不应该是未知的Jscrollpane?

这是代码:

    public objectDetails() {
    setTitle("LLI_MC_Solver");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    contentPane = new JPanel();
    contentPane.setLayout(new GridLayout());
    setBounds(100, 100, 510, 401);
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setVisible(true);
    contentPane.setPreferredSize(new Dimension(500, 390));

    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    scrollPane.setViewportBorder(new LineBorder(new Color(0, 0, 0), 2));
    scrollPane.setBounds(10, 10, 474, 342);
    scrollPane.setLayout(new GridLayout(0,4)); //Line which causes the error
    scrollPane.setPreferredSize(new Dimension(465, 330));
    contentPane.add(scrollPane);

    JPanel view = (JPanel)scrollPane.getViewport().getView();

        for(Values v : colDetails)
        {
            JLabel lblC = new JLabel();
            lblC.setText(k);
            view.add(lblC);
            view.validate();

            JLabel lblN = new JLabel();
            lblN.setText(v.getName());
            view.add(lblN);
            view.validate();

            JLabel lblT = new JLabel();
            lblT.setText(v.getType());
            view.add(lblT);
            view.validate();

            JTextField valueBox = new JTextField();
            valueBox.setText(v.getValue());
            view.add(valueBox);
            view.validate();

        }
}

我根据编译器标记了导致问题的行。我不明白为什么,随着JPanel相同的代码运行良好。我为了完成目的而发布的添加元素的 for 循环,问题一定是在setLayout()-Method.

预先感谢,感谢每一个帮助。


scrollPane.setLayout(new GridLayout(0,4)); //导致错误的行

您无法更改滚动窗格的布局管理器。

JScrollPane 有自己的自定义布局管理器,因为它需要管理水平/垂直滚动条以及行/列标题等。

相反,您添加一个使用 GridLayout 的面板:

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

Java:无法将 Gridlayout 应用于 Jscrollpane。获取 获取 java.lang.ClassCastException 的相关文章

随机推荐

  • 如何打印使用 iText 创建的 PDF?

    您好 我已经创建了一个包含图像的 PDF 文件 我想在创建后打印我的 pdf 如果我在内存中保存 PDF 而不是文件 然后将其发送到打印机 那就更好了 有什么想法吗 我正在使用 iText 检查我的代码 import com lowagie
  • Jenkins 无法连接到 gerrit 存储库(Windows 安装)

    我在 Stackoverflow 和 google 上查看了很多 但无法解决我的问题 My aim 我想设置 Jenkins 使用 git SCM 通过 gerrit 克隆存储库主机 我的詹金斯配置 Jenkins 版本 2 7 1 在 W
  • matlab中如何提取矩阵元素? [复制]

    这个问题在这里已经有答案了 可能的重复 MATLAB 将向量元素分配给各个变量的最简单方法 如何在 MATLAB 中进行多重赋值 如果我有一个矩阵 A 1 5 10 我设置a1 A 1 b1 B 1 等在一条线上 我想做类似的事情 a1 a
  • 有什么办法可以克服 URL 长度 2k 字符的限制吗?

    我认为URL长度只能是2000个字符左右 否则会卡住某些版本的IE 有什么办法可以克服这个问题吗 起初我想到的是tinyurl 但tinyurl实际上立即重定向到更长的URL 所以这可能也会失败 Update 我需要这么长的 URL 因为我
  • R:将数据框中的分数转换为小数

    我正在尝试将以分数形式存储为字符的数字数据帧转换为以十进制形式存储的数字 还有一些整数 也存储为字符 我想保留数据帧的当前结构 即我不想要一个列表作为结果 示例数据框 注意 真实的数据框将所有元素作为字符 这里它是一个因素 但我不知道如何复
  • .NET 有效属性名称

    NET 中有效属性名称的文档在哪里 显然 诸如空格 或 之类的内容在属性名称中无效 但是这些内容记录在哪里 您可以在平台上查找特定语言的信息 以下是一些 C 语言 VB语言 进一步来说 C 属性声明
  • 我想要一个 AJAX 文件上传器,例如 Gmail 文件上传,带有 PHP 进度条

    我想要一个 AJAX 文件上传器 就像您上传用 PHP 编写的文件 带有进度条 时在 Gmail 中显示的那样 有人有主意吗 Thanks 你可以使用这个插件 http aquantum demo appspot com file uplo
  • “位置:粘性;”如何实现?物业工作?

    我想让导航栏在用户滚动页面后粘在视口的顶部 但它不起作用 我不知道为什么 如果您能帮忙 这里是我的 HTML 和 CSS 代码 container min height 300vh nav selections text transform
  • Android Studio 如何创建一个新线程?

    我有以下片段类 public class fragment1 extends Fragment private TextView bunz count private TextView money count private Bunz bu
  • jQuery mouseup 没有被正确检测到

    我有一个包含跨度的 div 我有一个 mouseup 和 mousedown 事件 在按下 div 时应该触发 但是它无法正常工作 请转到这个小提琴 http jsfiddle net Ym7rM 如果您选择文本然后尝试拖动它 它只会检测到
  • 根据 Selenium Python 中的值单击按钮元素

    有如下 HTML 代码
  • HttpServerUtility.UrlTokenDecode 似乎只返回 null

    我似乎遇到了问题HttpServerUtility UrlTokenDecode string 因为它不断返回null 导致程序崩溃 根据我收集的信息 此方法会将字符串转换为其 base64 字节数组 不幸的是 该代码的原始开发人员已不在我
  • 无法发送具有此动词类型的内容主体

    我刚刚在 NET 2 0 应用程序 在 Windows Mobile 6 标准模拟器上运行 中遇到此异常 ProtocolViolationException 让我感到困惑的是 据我所知 我没有添加任何内容主体 除非我无意中以某种方式添加了
  • 将 Linux 系统时钟同步到 Windows NTP 服务

    我有一台 Linux PC 作为时钟客户端 我想使用 ntpdate 将此 PC 的时间与同一网络上同一空间中的 Windows PC 同步 我无法找到如何做到这一点 尽管我认为 Windows 时间服务是一个 NTP 服务器 但这并不像调
  • React Native:根据 Fetch(Url) 请求生成按钮元素列表的最佳方法是什么?

    我想制作一个用户可以点击的按钮元素列表 按钮元素的数量将在 3 5 个之间变化 具体取决于我执行的获取请求的结果 我知道如何根据获取请求的结果填充平面列表 但不知道按钮的内容 有什么帮助吗 例如 使用这个 JSON 假设我想为其中的电影数量
  • 将 Excel 文件读入 Access 数据库的最佳方法

    从 Access 2007 应用程序中读取 仅读取 Excel 文件的 最佳 方法是什么 我只想循环遍历行并将数据放入 Access 表中 我不想手动导入 获取外部数据 对话框 而是通过 VBA 进行导入 用户获得一个带有 浏览 按钮的表单
  • 为 nginx 服务器转换的 Apache 身份验证规则

    请帮我将这些 httacces 规则从 apache 转换为 nginx 规则 RewriteCond HTTP Authorization RewriteRule E HTTP AUTHORIZATION 1 SetEnvIf Autho
  • C++ 将字符串文字添加到字符文字

    我有一个关于 C 中字符串连接的问题 string str ab c cout lt lt str lt lt endl char ch c string str1 ab string str2 str1 ch cout lt lt str
  • 拖动后获取点信息

    IPython Notebooks 中有用于交互式 matplotlib 绘图的令人惊叹的 mpld3 mpld3 还具有插件功能 其中一个对我来说特别有趣 您可以在图中选择一个点并将其拖动 它如下所示 http mpld3 github
  • Java:无法将 Gridlayout 应用于 Jscrollpane。获取 获取 java.lang.ClassCastException

    我使用 Gridlayout 将 4 个元素放置在一行中 首先我有一个 JPanel 一切工作正常 对于行数变大并且我必须能够向下滚动的情况 我对其进行了一些更改 现在我有了我的JPanel与一个JScrollPane添加了它 我使用了相同