java - 使组件在流程布局中重叠

标签 java swing flowlayout

我正在编写一个小型纸牌游戏,到目前为止我有以下内容:

  • 我有一个自定义 JPanel Card 组件,我在其中重写 getPreferredSize() 方法

  • 我还有一个自定义的 HandView 组件,它本质上只是向其中添加了一堆卡片组件。我还重写了 getPreferredSize() 并使用了流程布局。

我的问题是,当太多 Card 组件添加到 handView 时,它们不会显示。我不想调整卡片组件和手组件的大小。我想要的是,当添加太多卡片组件时,使卡片组件开始相互重叠。这可以通过流程布局实现吗?

最佳答案

Is that possible with a flowlayout?

您可以在创建FlowLayout时指定水平间隙。如果您使用负值,则会出现重叠。

但是,您可能需要考虑 Overlap Layout这是专门为这种类型的布局编写的。它为重叠的工作方式提供了不同的选项。

What i would like is to make the card components start overlapping each other when too many are added

在这两种情况下,您都需要在添加/删除卡片时动态重置间隙,然后重新验证面板。

关于java - 使组件在流程布局中重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910225/

相关文章:

java - 为什么需要强制转换为 (LayoutManager) 来设置布局?

重复小数到分数计算器的 java.lang.StringIndexOutOfBoundsException

java - UDP服务器客户端java

java - 如何使用一个数据源以编程方式更改 Spring 中的数据库?

java - 我无法获取下面的程序,请解释一下

java - JComponent.WHEN_IN_FOCUSED_WINDOW 无法与 JCombobox 一起使用

Java Swing FlowLayout 对齐

java - 如何将 int numStudents 复制到 Integer i?

Java Swing完全圆角的JButton(圆圈外的区域无法点击也看不到)

最后一个单元格的 UICollectionView 布局