约束必须是字符串(或 null)

2023-12-30

我找不到错误来挽救我的生命。错误是“约束必须是字符串(或空)”我不知道为什么它会给我这个错误,我必须错过一些简单的东西。 我尝试添加

例如: dataPane = new JPanel(new GridBagLayout());到我所有的面板,什么也没有。

我正在尝试将面板 (2) 添加到扩展面板。 这是我的代码:

    public class SearchFlight extends JPanel {
        //giving names to the components\\\
        private JRadioButton oneWay;
        private JRadioButton roundTrip;
        private ButtonGroup buttonGroup;
        private JLabel fromDestdLabel;
        private JComboBox fromDestCb;
        private JLabel toDestLbl;
        private JComboBox toDestCb;
        private JLabel departLbl;
        private JComboBox departMonth;
        private JComboBox departDay;
        private JTextField departYear;
        private JLabel arriveLbl;
        private JComboBox arriveMonth;
        private JComboBox arriveDay;
        private JTextField arriveYear;
        private JLabel adultLbl;
        private JComboBox adultCb;
        private JLabel childLbl;
        private JComboBox childCb;
        private JLabel infantLbl;
        private JComboBox infantCb;
        private JButton searchBtn;
        private JButton canxBtn;
        private JPanel buttonPane;
        private JPanel dataPane;
 public SearchFlight(){
     initcomp();
 }       
public void initcomp(){
    //initilizing all the componets\\
    oneWay = new JRadioButton("One Way");
    roundTrip = new JRadioButton("Round Trip");
    buttonGroup = new ButtonGroup();
    fromDestdLabel = new JLabel("From");
    fromDestCb = new JComboBox();
    toDestLbl = new JLabel("To");
    toDestCb = new JComboBox();
    departLbl = new JLabel("Depart");
    departMonth = new JComboBox();
    departDay = new JComboBox();
    departYear = new JTextField();
    arriveLbl = new JLabel("Arrive");
    arriveMonth = new JComboBox();
    arriveDay = new JComboBox();
    arriveYear = new JTextField();
    adultLbl = new JLabel("Adult");
    adultCb = new JComboBox();
    childLbl = new JLabel("Child");
    childCb = new JComboBox();
    infantLbl = new JLabel("infant");
    infantCb = new JComboBox();
    searchBtn = new JButton("Search");
    canxBtn = new JButton("Cancel");
    buttonPane = new JPanel();
    dataPane = new JPanel(new GridBagLayout());


    setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();
    BorderLayout borderLayout = new BorderLayout();



    c.fill = GridBagConstraints.HORIZONTAL;
    dataPane.setLayout(borderLayout);
    c.gridx = 1;
    c.gridy = 0;
    dataPane.add(oneWay, c);
    c.gridx = 2;
    c.gridy = 0;
    dataPane.add(roundTrip, c);
    c.gridx = 0;
    c.gridy = 1;
    dataPane.add(fromDestdLabel ,c);
    c.gridx = 1;
    c.gridy = 1;
    c.gridwidth = 2;
    dataPane.add(fromDestCb, c);
    c.gridx = 0;
    c.gridy = 2;
    dataPane.add(toDestLbl,c);
    c.gridx = 1;
    c.gridy = 2;
    dataPane.add(toDestCb, c);
    c.gridwidth = 1;
    c.gridx = 0;
    c.gridy = 3;
    dataPane.add(departLbl ,c);
    c.gridx = 1;
    c.gridy = 3;
    dataPane.add(departMonth,c);
    c.gridx = 2;
    c.gridy = 3;
    dataPane.add(departDay, c);
    c.gridx = 3;
    c.gridy = 3;
    dataPane.add(departYear, c);
    c.gridx = 0;
    c.gridy = 4;
    dataPane.add(arriveLbl, c);
    c.gridx = 1;
    c.gridy = 4;
    dataPane.add(arriveMonth, c);
    c.gridx = 2;
    c.gridy = 4;
    dataPane.add(arriveDay,c);
    c.gridx = 3;
    c.gridy = 4;
    dataPane.add(arriveYear,c);
    c.gridx = 0;
    c.gridy = 5;
    dataPane.add(adultLbl,c);
    c.gridx = 1;
    c.gridy = 5;
    dataPane.add(adultCb,c);
    c.gridx = 0;
    c.gridy = 6;
    dataPane.add(childLbl,c);
    c.gridx = 1;
    c.gridy = 6;
    dataPane.add(childCb,c);
    c.gridx = 0;
    c.gridy = 7;
    dataPane.add(infantLbl,c);
    c.gridx = 1;
    c.gridy = 7;
    dataPane.add(infantCb,c);



    buttonPane.add(searchBtn);
    buttonPane.add(canxBtn);

    add(buttonPane,  BorderLayout.SOUTH);
    add(dataPane);
 }               

}

您为 dataPane 提供了 BorderLayout,但随后在向其添加组件时尝试使用 GridBagConstraints -- 不允许,即使允许,也没有意义。

相反,您有以下两种选择之一:

  • 将容器的布局保留为 BorderLayout,但在向此容器添加组件时使用 BorderLayout 常量,例如 BorderLayout.EAST,或者
  • 将 dataPane 的布局管理器更改为 GridBagLayout,然后当然,在添加组件时继续使用 GridBagConstraints。

Edit
您在评论中指出:

所以我使用 dataPane = new JPanel(new GridBagLayout());然后通过 add(dataPane) 添加它;

是的,使用 GridBagLayout 很好,但我不确定你的第二点是什么意思,即add(dataPane)因为这似乎与您原来的问题无关。

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

约束必须是字符串(或 null) 的相关文章

随机推荐

  • Python __del__ 不能用作析构函数? [复制]

    这个问题在这里已经有答案了 经过多次检查 我确实发现有关该主题的信息不一致 在某些情况下 我确实发现 init and del 是 python 中的构造函数和析构函数 这似乎适用于 init 因为我看到它在创建类时被调用 但 del 当程
  • 我无法通过 VNC 查看 WPF Windows 应用程序的上下文菜单

    我可以打开上下文菜单 但无法通过 VNC 查看打开的菜单列表 我知道我可以通过直接检查vnc服务器机器来打开上下文菜单 我在不同的 vnc 服务器 客户端计算机 尽管它们都是 Windows Vista 和不同的 wpf 应用程序上进行了测
  • git,本地分支上的更改会影响其他本地分支吗?

    我有一个主分支 现在为了测试其他东西 我做了一个分支 A 我签出分支 A 修改文件 当我再次签出 master 时 更改也在那里 在其他存储库上我有正确的行为 未提交的更改将从一个分支移动到另一个分支 为了使它们分开 您必须stash在移动
  • WPF MVVM 切换用户控件

    我是 MVVM 和 WPF 的新手 但我知道 MVVM 中发生了什么 我在主窗口中的用户控件之间切换时遇到问题 在我的应用程序中我有 MainWindow xaml 包含日志和 2 个链接 显示全部和新建 当然我有 ViewModel 我还
  • 查找 NxNxN 二进制数组中仅包含 1 的最大长方体

    给定一个 NxNxN 二进制数组 仅包含 0 或 1 我们如何通过非平凡的解决方案 即 O N 3 获得最大的长方体 这是同样的问题查找 N N 二进制矩阵中仅包含零的最大矩形 https stackoverflow com questio
  • jQuery $.ajax 响应为空,但仅在 Chrome 中

    我已经用尽了所有的研究途径来解决这个问题 所以希望其他人能想到我没有想到的东西 相对直接的设置 我有一个带有一些 javascript 的 html 页面 它向 URL 在同一域中 发出 ajax 请求 后台的 java web 应用程序执
  • java.lang.NoSuchMethodError:org.springframework.beans.factory.xml.XmlReaderContext.getResourceLoader()Lorg/springframework/core/

    我正在Tomcat7 JDK1 7 Maven和其他组件上开发Spring应用程序 最近 我对应用程序进行了重大更改 需要切换到 Spring 3 更改后 我在部署到开发服务器时看到以下异常 不过 该应用程序在我的本地系统上运行完美 jav
  • Aptana 插件使 Eclipse 崩溃

    我在 Ubuntu 11 04 笔记本电脑上使用 Eclipse EE Indigo 我使用Sun JDK 当我使用帮助 安装新软件安装 aptana 插件 然后通过粘贴安装 aptana 时 http download aptana co
  • 线程安全队列有问题吗?

    我正在尝试使用 C 中的 pthreads 编写线程安全队列 我的程序在 93 的情况下都能运行 另外 7 的时间它会吐出垃圾 或者似乎睡着了 我想知道我的队列中是否存在一些缺陷 上下文切换会破坏它 thread safe queue in
  • http 收到 304 但仍然下载内容

    我请求了一个html文件 我得到了http状态代码304 我知道这意味着内容没有被修改 所以浏览器可以使用缓存 但我注意到请求计时信息中内容下载用了 2 63 秒 我用 Chrome 开发工具进行了调试 既然浏览器有缓存 为什么它仍然下载内
  • s3直接上传限制文件大小和类型

    一个新手问题 但我用谷歌搜索了一下 似乎找不到任何解决方案 我希望允许用户直接将文件上传到 S3 而不是先通过我的服务器 通过这样做 有什么方法可以在实际上传到 S3 之前检查文件的大小限制和允许的类型吗 最好不要使用 flash 而使用
  • 将 Kafka 中的 Avro 转换为 Parquet 直接转入 S3

    我的 Kafka 主题以 Avro 格式存储 我想使用整个主题 在收到时不会更改任何消息 并将其转换为 Parquet 直接保存在 S3 上 我目前正在这样做 但它需要我一次使用来自 Kafka 的消息并在本地计算机上处 理 将它们转换为
  • 删除最后一次出现数值后的所有内容

    我需要删除最后一次出现数值后的所有内容 如下所示 1234D应该1234 ABCD1234A BC应该ABCD1234 这个方法应该可以为你做到 public string StripAfterLastNumber string s int
  • Android 中用于确认码的虚线输入字段

    我正在尝试为 android 布局中的数字创建一个虚线输入字段 例如 我可以在其中添加 4 个数字并将它们放入我的主要活动中 我进行了很多搜索 但没有找到更好的解决方案 使用这个库来实现您的目标 https github com gloma
  • 无法添加应用程序 ID,因为已超出“7”天内的“10”个应用程序 ID 限制[重复]

    这个问题在这里已经有答案了 I m getting this weird error when I try to hit this button to fix this error for the app I just made I am
  • 如何使用 Spring Data REST 更新 @ManyToOne 关系?

    我将 Spring Data REST 与 JPA 结合使用 我有一个 User 实体 它与另一个在单独的 RDBMS 表中建模的名为 AccountStatus 的实体具有多对一关系 JSON 表示如下所示 id 123 username
  • ModuleNotFoundError:没有名为“django”的模块

    我已经使用 django 在虚拟环境中构建了一个站点 并按照 AWS 文档中的步骤部署该站点 我已使用 Elastic Beanstalk 将我的网站部署到 AWS Web 服务器 并设置了运行 3 6 和 django 2 1 1 的 p
  • Domino 8.5.3 64 位中 HTTPJVMMaxHeapSize 的最佳设置

    我试图找到关于 Domino 8 5 3 FP4 64 位 Windows 中 JVM 堆大小的最佳设置的明确答案 我知道默认情况下它设置为1024M 一些网站建议建议使用 1G 1024M 但这是默认设置 所以就那么好了吗 其他网站称可用
  • 在 Android VideoView 上绘制叠加层(HUD)?

    我有一个绘制的自定义视图HUD 这是我的布局
  • 约束必须是字符串(或 null)

    我找不到错误来挽救我的生命 错误是 约束必须是字符串 或空 我不知道为什么它会给我这个错误 我必须错过一些简单的东西 我尝试添加 例如 dataPane new JPanel new GridBagLayout 到我所有的面板 什么也没有