所以我的程序创建了一个 MigLayout GUI,并有一堆 JLabel,它们在创建时给出了图像。在这里您可以看到现在的最终结果:
图像太大,超出了它们所包含的 JPanel 的大小。它只是将其创建为原始图像的大小,然后显示它,但是,这显然是一个问题。有没有办法可以修复大小,以便尝试适合 GUI 中的每个组件?
对于初学者,我想确保蓝色部分不会像那样移动,我希望它保持设置为(高度的一半)的大小。我还希望图像在保持原始图像纵横比的情况下占据最大尺寸。
我已经尝试设置 JLabel 的大小和首选大小,当我告诉它添加 JLabel 时,我尝试了一些尝试使用 MigLayout 给它参数,但都没有为我工作。我正在考虑扩展 JLabel 并编写一些东西来修复它,但不完全确定如何去做。我知道我可以覆盖油漆,但不确定我实际上必须做什么。
我的 JPanel 设置如下:
JPanel jpCards = new JPanel(new MigLayout("insets 0, gapx 0, gapy 0, wrap 7", "grow"));
我的卡片是在没有附加参数的情况下添加的,只是通过给它显示它们的大小的图片来创建。
澄清一下,我需要更改 JLabel 的实际大小,而不仅仅是其中包含的内容,因为它们稍后会有鼠标侦听器。如果只是图像发生了变化,我会遇到鼠标侦听器在 JLabel 中检测到自己的问题,它看起来不应该