Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MigLabel的布局和大小固定_Java_Swing_User Interface_Jpanel_Miglayout - Fatal编程技术网

Java MigLabel的布局和大小固定

Java MigLabel的布局和大小固定,java,swing,user-interface,jpanel,miglayout,Java,Swing,User Interface,Jpanel,Miglayout,因此,我的程序创建了一个MigLayout GUI,并有一组JLabel,这些JLabel在创建时会显示图像。在这里,您可以看到现在的最终结果: 这些图像太大,超过了它们所包含的JPanel的大小。它只是将其创建为原始图像的大小,然后显示,然而,这显然是一个问题。有没有一种方法可以调整大小,使它能够适应GUI中的每个组件 首先,我希望确保蓝色部分不会像那样移动,我希望它保持设置的大小(高度的一半)。我还希望图像能够在保持原始图像纵横比的情况下占据最大尺寸 我试过设置JLabel的大小和首选大小

因此,我的程序创建了一个MigLayout GUI,并有一组JLabel,这些JLabel在创建时会显示图像。在这里,您可以看到现在的最终结果:

这些图像太大,超过了它们所包含的JPanel的大小。它只是将其创建为原始图像的大小,然后显示,然而,这显然是一个问题。有没有一种方法可以调整大小,使它能够适应GUI中的每个组件

首先,我希望确保蓝色部分不会像那样移动,我希望它保持设置的大小(高度的一半)。我还希望图像能够在保持原始图像纵横比的情况下占据最大尺寸

我试过设置JLabel的大小和首选大小,我试过一些尝试,当我告诉miglayet添加JLabel时,miglayet给它参数,这两种方法都不适用于我。我很乐意扩展JLabel并编写一些东西来修复它,但不完全确定如何进行。我知道我可以覆盖油漆,但不确定我必须实际做什么

我的JPanel设置如下:

JPanel jpCards = new JPanel(new MigLayout("insets 0, gapx 0, gapy 0, wrap 7", "grow"));
我的卡片是在没有附加参数的情况下添加的,只需给它显示大小的图片即可创建


只是为了澄清一下,我需要更改JLabel的实际大小,而不仅仅是其中包含的内容,因为它们稍后将有鼠标侦听器。如果只更改了图像,我会遇到鼠标侦听器在JLabel中检测到自己的问题,即它看起来不应该

我通过在制作JLabel之前更改图标的大小来解决这个问题

我发现,在Java中,当您创建一个给定某种映像的JLabel时,它将使JLabel的大小与给定映像的大小相匹配。因此,我没有根据原始图像创建JLabel,而是首先使用屏幕的尺寸对其进行缩放,然后用它创建JLabel

还有一些工作要做,因为我希望用户能够调整屏幕大小和图像大小。我将不得不花一些时间考虑如何调整它的大小,但这不是一个主要问题