使用滚动条动态显示面板的布局

2024-01-19

在java中,我一直在尝试创建一个可以接受其他带有滚动条的面板的面板。

我尝试使用网格布局,这工作得很好,除了如果我只添加几个面板,它会增长这些面板以适应父面板的大小。

我尝试使用 flowlayout,但这使得面板水平流动,因为有滚动条。

我该如何制作才能将面板添加到从顶部开始的父面板,并使它们始终具有相同的尺寸(或其首选尺寸)。

此外,当我在事件发生后将面板添加到父面板时,直到我移动或调整表单大小后,它们才会出现。我该如何让它重新喷漆?对其调用 repaint() 不起作用。


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

/** This lays out components in a column that is constrained to the
top of an area, like the entries in a list or table.  It uses a GridLayout
for the main components, thus ensuring they are each of the same size.
For variable height components, a BoxLayout would be better. */
class ConstrainedGrid {

    ConstrainedGrid() {
        final JPanel gui = new JPanel(new BorderLayout(5,5));
        gui.setBorder(new EmptyBorder(3,3,3,3));
        gui.setBackground(Color.red);

        JPanel scrollPanel = new JPanel(new BorderLayout(2,2));
        scrollPanel.setBackground(Color.green);
        scrollPanel.add(new JLabel("Center"), BorderLayout.CENTER);
        gui.add(new JScrollPane(scrollPanel), BorderLayout.CENTER);

        final JPanel componentPanel = new JPanel(new GridLayout(0,1,3,3));
        componentPanel.setBackground(Color.orange);
        scrollPanel.add(componentPanel, BorderLayout.NORTH);

        JButton add = new JButton("Add");
        gui.add(add, BorderLayout.NORTH);
        add.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                componentPanel.add(new JTextField());
                gui.validate();
            }
        });

        Dimension d = gui.getPreferredSize();
        d = new Dimension(d.width, d.height+100);
        gui.setPreferredSize(d);

        JOptionPane.showMessageDialog(null, gui);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                ConstrainedGrid cg = new ConstrainedGrid();
            }
        });
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用滚动条动态显示面板的布局 的相关文章

  • Spring控制器是线程安全的吗

    我遇到了这个控制器示例 想知道它是否是线程安全的 我特别想知道 gson 实例变量 import org springframework stereotype Controller import org springframework we
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 场景生成器删除 fxml 文件中的导入

    我使用场景构建器 Gluon Scene Builder JavaFX Scene Builder 8 1 1 来创建应用程序的 UI 并使用 Eclipse 开发 JavaFX 现在 每次我在场景生成器中保存某些内容时 它都会从 fxml
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 如何在java中使jpeg无损?

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

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 从 Stax XMLStreamReader 读取以解组部分

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

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • 阻止 OSX 变音符号为所有用户禁用 Java 中的 KeyBindings?

    注 我知道这个问题 https stackoverflow com questions 40335285 java keybinds stop working after holding down a key用户必须输入终端命令才能解决此问
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • 如何将实例变量传递到 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

随机推荐

  • 如何在 Eclipse 编辑器插件中显示语法错误

    如何在 Eclipse 编辑器插件中指示语法错误 例如 非法的标记序列 就像在 Eclipse Java 编辑器中一样 即通过红色蠕动下划线 滚动条上可以跳转到的红色标记以及解释性消息您将鼠标悬停在其中一个上吗 我正在为自定义文件格式 特别
  • 当子属性更改时如何触发 NgComponent 的更新

    我是 AngularDart 和 Dart 的完全初学者 我遵循了教程 但我似乎找不到答案 我有两个可以完美工作的 NgComponents
  • ggplot2——自动放大geom_smooth(使用coord_cartesian)

    geom smooth很棒 很大程度上是因为它平均了很多变化 然而 正因为如此 当它缩小时 很难看出它在 x 轴上的变化 我正在制作大约 1000 个我需要的图表ggplot2放大通过coord cartesian 然而 每个图表都有不同的
  • 使用时间选择器设置时间

    有两个编辑文本 单击编辑文本时间选择器应该弹出 如何使用时间选择器选择日期并在两个编辑文本中设置日期 我已经用谷歌搜索了 timepicker 但我不知道如何在单击 edittext 时启动时间选择器并且 设置时间 XML
  • Python:替换重音符号(é 到 e)、删除 [^a-zA-Z\d\s] 和 lower() 的有效方法[重复]

    这个问题在这里已经有答案了 使用Python 3 3 我想做以下事情 替换特殊字母字符 例如 e 锐号 和 o 带有基本字符的扬抑符 例如 从 到 o 删除除字母数字和字母数字之间的空格之外的所有字符 人物 转换为小写 这是我到目前为止所拥
  • pecl 安装以前的 php 版本

    我已将 MacBook 升级为 Mavericks 并破坏了我的开发环境 我现在遇到的问题是我的 pear pecl 仍然尝试安装我以前的 5 3 版本的 PHP 而不是版本 5 4 PHP版本 php v PHP 5 4 17 cli b
  • OSGi + 休眠

    数据库操作不是分散在四个 osgi 包中 而是全部执行略有不同的操作 我想创建一个 简单的 OSGi 包来负责所有持久性问题 我觉得这并不像听起来那么简单 因为 每个包都有唯一的类加载器 所以我真正感激的是如果有人知道此类问题的解决方案 我
  • 如何在 Rust 中对“选项”分配进行分组?

    我有一个代码块 需要一次分配多个可选变量 任何值出现的可能性都很小None 因此单独处理每个失败的案例并不是特别有用 目前我这样写支票 if let Some a foo a if let Some b foo b if let Some
  • 在 datagridview 中显示 Yes/NO 而不是 True/False

    datagridview以一种形式显示数据库表的内容 表类型的一列是布尔值 因此在datagridview中显示true false 但我想自定义它以显示是 否 你建议哪种方式 当谈到自定义格式时 我想到了两种可能的解决方案 1 手柄Cel
  • cakephp 3 用于关联数据的 queryBuilder

    我有2张桌子 Table 1 product prices id price description pack display created modified Table 2 payment infos id payer pay date
  • 如何将html保存到数据库字段

    我有一个小编辑器 http www leigeber com 2010 02 javascript wysiwyg editor 我的用户可以使用此编辑器的网页 我将 html 保存到我的数据库中 我在将此 html 保存到我的数据库时遇到
  • UICollectionView 中的多个部分

    我正在使用集合视图为我的医院构建一个 iOS 应用程序 但是 根据目的 我需要在专科诊所使用多个部分 如果只是 1 部分 我已经完成了代码 当我尝试将其分成 2 个部分时 它总是返回一个 nil 值 请检查我下面的代码 public fun
  • 什么是表分区?

    什么情况下我们应该使用表分区 一个例子可能会有所帮助 我们每天从 124 家杂货店收集数据 每天的数据都与其他日期完全不同 我们按日期对数据进行分区 这使我们能够更快地 因为oracle可以使用分区索引并快速消除所有不相关的天数 这还使备份
  • 如果嵌入需要正确的大括号嵌套,如何在 Ace 编辑器中进行嵌入突出显示?

    考虑以下 Razor 代码 div Model GetSomething div 显然 只有考虑到所有括号 才能正确识别 Razor 块 如果我进行朴素嵌入 基于 PHP 的做法 var RazorLangHighlightRules fu
  • 在 GGplot2 中使用 Geom_Bar

    So I m trying to use geom bar in ggplot2 and all of the cases that I see of people demonstrating it online are of compar
  • C# - C 互操作性

    问答位于链接文本 https stackoverflow com questions 3726829 writing a dll in c c for net interoperability非常接近我正在寻找的内容 但我刚刚开始使用 C
  • 电子邮件中的图像:链接还是嵌入?

    我注意到我收到的几乎所有电子邮件都没有嵌入图像 而是从 http 链接它们 当然它们会被默认阻止 我正在为我的服务发送 HTML 电子邮件 并且可以轻松嵌入图像以创建更好的视觉体验 有什么特别的理由不这样做吗 为什么其他人都使用链接而不是嵌
  • `##` 和 `hashCode` 有什么区别?

    方法之间有什么区别 and hashCode 无论哪个类别或哪个类别 它们似乎都输出相同的值hashCode我使用的超载 谷歌也没有帮助 因为它找不到符号 的 子类 AnyVal不守规矩properly从哈希的角度来看 scala gt 1
  • UNIX下如何查看进程是否挂起

    我正在尝试恢复所有已暂停的进程 但我不知道如何检查进程是否已暂停 我尝试过 但它没有表明该进程是暂停还是运行 你可以使用 Ipor 的方式 proc
  • 使用滚动条动态显示面板的布局

    在java中 我一直在尝试创建一个可以接受其他带有滚动条的面板的面板 我尝试使用网格布局 这工作得很好 除了如果我只添加几个面板 它会增长这些面板以适应父面板的大小 我尝试使用 flowlayout 但这使得面板水平流动 因为有滚动条 我该