【问题标题】:CardLayout Issues卡片布局问题
【发布时间】:2012-05-31 04:10:55
【问题描述】:

我有这个主窗口,它扩展了一个 JFrame,它翻转了很多不同的 JPanel,所以我认为 CardLayout 对这种行为很有用。

我在 CardLayout 中添加了两个窗格,一个窗格比另一个窗格大得多,当我添加两个窗格时,显示的是较小的第一个窗格,而未显示较大的第二个窗格(良好行为) ,但它在第一个窗格下方留下了巨大的空间。

我不知道 CardLayout 的尺寸是如何工作的,但它不响应 pack(),看起来它使用特定的算法来确定布局的首选尺寸。

有人有想法吗?

【问题讨论】:

    标签: java swing cardlayout


    【解决方案1】:

    CardLayout 允许 GUI 将pack() 设置为最大卡的大小。

    您可以为较小的卡片“以视觉上令人愉悦的方式排列空白”,并将较大的卡片放入滚动窗格中。

    第一个窗格是登录表单

    我会在JOptionPane(例如here - 下面的屏幕截图所示)或模态JDialog 中显示。

    【讨论】:

    • 第一个窗格是登录表单,而第二个窗格包含 4 个日历和许多字段,如果我将第二个窗格放在 scrollView 中,这会将最大高度设置为较小的窗格吗?
    • 嗯,我想我们可以争论如何实现可视化的登录窗格。我发现将所有内容都包含在主窗口中更有吸引力。此外,我有多个窗格,我发现 CardLayout 在不同视图之间切换非常有用。我没有尝试滚动条的更改,但我必须在本周末之前完成,所以我会及时通知您。
    • 别误会,其他组件在逻辑上可能很适合单个CardLayout。只是我最习惯在单独的(模态)弹出窗口中看到(“最不意外的路径”)登录。 Web 应用程序会有所不同 - 您倾向于将其全部包含在一个页面中。
    • @AndrewThompson:+1 同意,但限制modality 也是一个有用的目标。 SquirrlSQL 就是一个例子。
    • @trashgod 我喜欢准模式。不,等等..我想的是卡西莫多。 :) 感谢您的链接。
    猜你喜欢
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2019-12-24
    • 2011-12-14
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多