BorderLayout 无法正确显示

2023-12-04

我想要一个 JFrame,其中左侧和右侧有一个边框,颜色为黑色,宽度为 withfOfJFrame/10。

现在,我的尝试如下所示:

JFrame f = new JFrame();
f.setSize(800, 600);
f.setLayout(new BorderLayout());

JPanel leftBorder = new JPanel();
JPanel rightBorder = new JPanel();
leftBorder.setBackground(Color.black);
rightBorder.setBackground(Color.black);
leftBorder.setSize(f.getWidth()/10, f.getHeight());
rightBorder.setSize(f.getWidth()/10, f.getHeight());
JPanel center = new JPanel();
center.setBackground(Color.red);

f.add(leftBorder, BorderLayout.WEST);
f.add(center, BorderLayout.CENTER);
f.add(rightBorder, BorderLayout.EAST);    
f.setVisible(true);

这会在左侧和右侧添加一个黑色边框,但该边框具有固定大小,并且在调整窗口大小时不会重新计算。大小甚至不是 800(JFrame 的起始宽度)的 1/10。

我究竟做错了什么?或者还有更好的方法来做到这一点吗?


您可以通过以下方式达到预期的结果GridBagLayout和适当的重量:

public class Snippet {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

                JPanel leftBorder = new JPanel();
                JPanel rightBorder = new JPanel();
                leftBorder.setBackground(Color.black);
                rightBorder.setBackground(Color.black);

                JPanel center = new JPanel();
                center.setBackground(Color.red);

                f.setLayout(new GridBagLayout());

                GridBagConstraints gbc = new GridBagConstraints();
                gbc.fill = GridBagConstraints.BOTH;
                gbc.weighty = 1.0;
                gbc.gridy = 0;
                gbc.gridwidth = 1;
                gbc.gridheight = 1;

                gbc.gridx = 0;
                gbc.weightx = 0.1;
                f.add(leftBorder, gbc);

                gbc.gridx = 1;
                gbc.weightx = 0.8;
                f.add(center, gbc);

                gbc.gridx = 2;
                gbc.weightx = 0.1;
                f.add(rightBorder, gbc);

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

BorderLayout 无法正确显示 的相关文章

  • 使用 Checkstyle Plugin 时从插件调用代码时出现问题:“org.eclipse.jface”

    我正在尝试在 Rational Software Architect 7 0 0 4 上使用 eclipse cs 插件 我最近卸载了旧的 beta2 版本并安装了 beta3 插件本身按照之前的配置工作 但是每当我尝试通过 Windows
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • Java 变量的作用域

    我不明白为什么这段代码的输出是10 package uno public class A int x 10 A int x 12 new B public static void main String args int x 11 new
  • 场景生成器删除 fxml 文件中的导入

    我使用场景构建器 Gluon Scene Builder JavaFX Scene Builder 8 1 1 来创建应用程序的 UI 并使用 Eclipse 开发 JavaFX 现在 每次我在场景生成器中保存某些内容时 它都会从 fxml
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • 如何将实例变量传递到 Quartz 作业中?

    我想知道如何在 Quartz 中外部传递实例变量 下面是我想写的伪代码 如何将 externalInstance 传递到此作业中 public class SimpleJob implements Job Override public v
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr

随机推荐

  • 如何填充现有列表/数组

    我是 Reason ocaml 函数式编程的新手 我知道关于List append and 但这些函数将创建新列表 但如何填充现有列表 数组 填充列表的最佳方法是什么 填充数组的最佳方法是什么 表示坐标类型是否为let coords arr
  • 接近大小限制 - 手表应用程序的大小(50MB 限制令人头疼。)

    我们的应用程序达到了大约 49MB 而且我们还没有完成一半 所以肯定会超过50MB的限制 我有以下几个问题 1 watchOS 中可以使用按需资源吗 2 我的资源 图像 自定义字体 制作2份副本 每一份是手表应用程序 另一份是手表扩展 怎么
  • 如何获取 Scala 中当前的脚本或类名?

    我希望我的 Scala 程序能够以编程方式确定其脚本文件名或其类名 将字符串存储在变量中program并打印出名字 Java有several为此的方法 我认为这是最简单的 val program new Exception getStack
  • 为什么模板函数调用不明确?

    include
  • 为什么 strchr 比我的 simd 代码快两倍

    我正在学习 SIMD 并且很好奇是否有可能在查找字符方面击败 strchr 看起来 strchr 使用相同的内在函数 但我假设它检查空值 而我知道该字符在数组中并计划避免空值检查 我的代码是 size t N 1e9 bool found
  • Android 中的垂直画廊

    我正在开发一个应用程序 为此我需要将图库设置为垂直模式而不是水平模式 我的问题是 我是否有可能展示垂直画廊类型的小部件 任何帮助表示赞赏 你为什么不创建一个列表视图的自定义适配器 如果你定义一个具有一个图像视图的自定义适配器那么它将与垂直画
  • 按内容查找 html 元素并使用 jQuery 隐藏

    我正在尝试使用 jquery 查找某些 HTML 中的某些元素 我想查找并隐藏包含标签文本 这是我的测试标签 和 Yest another test label 的列表 id ul class top level list li class
  • 如何在Excel VBA中给出小于一秒的时间延迟?

    我想在小于 1 秒的特定持续时间后重复一个事件 我尝试使用以下代码 Application wait Now TimeValue 00 00 01 但这里的最小延迟时间是一秒 如何延迟半秒 您可以使用 API 调用和睡眠 将其放在模块的顶部
  • 使用displaytag+tiles导出excel的问题

    显示标签 1 2 弹簧 MVC 2 5 6 瓷砖2 0 7 我已经查看了该网站上围绕同一主题区域的其他一些项目 但似乎没有回答如何将显示标记生成的表格导出到 Excel 的问题 我可以导出 保存 xml 和 csv 但不能导出 保存 exc
  • Xcode iOS 按下按钮,然后向上拖动第二个按钮

    假设我想给一个整数加 1 这只有当我按下一个按钮时才会完成UIButton然后松开我的手指到另一个UIButton 拖拽组合 我可以做的最简单的方法是什么IBAction出现在组合中 这可以通过触摸坐标来完成 或者只是UIButtons a
  • 如何在没有时间的情况下获取当前日期?

    我可以使用以下方法获取日期和时间 DateTime now DateTime Now 如何以 DateTime 格式单独获取当前日期和时间 我没有使用 ASP NET C 中的日期时间选择器对话框 好吧 您可以将今天的日期作为DateTim
  • PHPmail 函数中的“无法访问文件:”

    我正在尝试使用 PHPMailer 通过电子邮件发送服务器上存在的文件 当我运行此代码时 我收到 无法访问文件 并且发送的电子邮件没有附件 任何人都可以指导我如何解决此问题 checkyes POST check date date Y m
  • Yahoo! 上的正则表达式管道

    我在胡闹雅虎 管道我在一些正则表达式方面碰壁了 现在我熟悉了 Perl 中的正则表达式 但 Yahoo 中的规则似乎有所不同 管道 我正在做的是获取一个页面并尝试将其转换为提要 我的正则表达式用于从 HTML 中删除链接 效果很好 但我想要
  • Inno Setup - 从外部源(文件或文件夹内容)创建组件/类型的动态列表

    我有一个批处理文件 设置更改器 它使用 xcopy 列出特定文件夹中的特定文件格式 然后允许我输入其中一个名称 脚本使用该名称将该文件复制到另一个位置 首先 xcopy 创建原始副本作为备份 滚动备份仅 1 份 然后进行文件复制 扩展名在批
  • 错误 A2070:在汇编语言中使用嵌套 while 循环时指令操作数无效

    我正在尝试使用 Masm 在汇编中嵌套 while 循环 我在第 15 行 即运行以下代码时内部 while 循环的 endw 指令 收到 错误 A2070 无效指令操作数 INCLUDE Irvine32 inc data i byte
  • apache 无法正确提供静态内容

    我一直在开发自己的 mvc 框架来进一步学习 Web 应用程序 但在提供静态资源时遇到问题 我试图在应用程序中有一个入口点 也称为前端控制器 所以在我的项目中 我有一个 htaccess 文件 它将所有请求重定向到 app 文件夹 其中另一
  • 将两个不同的结构传递给同一个函数

    我有 2 个不同大小的结构 我希望有一个可以将它们传递到其中的函数 但是 我不知道如何定义函数的参数来接受 2 个不同的结构 我的结构如下 struct int a 2 byte int b 2 byte int c 2 byte int
  • 已部署动态 Web 项目的 WebSphere ClassNotFoundException

    Problem 我目前在 WebSphere 7 0 应用程序服务器上部署的 EAR 带有 OpenFaces Web 项目 遇到 ClassNotFoundException EAR 部署没有问题 但是当我从 Web 项目 包含在 EAR
  • 警告:函数“strcmp”的隐式声明[重复]

    这个问题在这里已经有答案了 创建一个简单的代码来扫描两个数字 询问用户是否想要将它们相加或相乘 然后执行运算并打印输出 include
  • BorderLayout 无法正确显示

    我想要一个 JFrame 其中左侧和右侧有一个边框 颜色为黑色 宽度为 withfOfJFrame 10 现在 我的尝试如下所示 JFrame f new JFrame f setSize 800 600 f setLayout new B