Image 带有图像的按钮的大小

Image 带有图像的按钮的大小,image,button,size,codenameone,Image,Button,Size,Codenameone,在我的应用程序中,我有两个相同类型按钮的实例(我自己创建了一个类,该类对按钮进行子类化,并设置一个特定的UIID,还做一些其他事情…) 其中一个将添加到长方体布局中,长方体布局作为边框布局的中心添加。BoxLayout中的另一个组件是按钮上方的标签 另一个添加到GridLayout中,该GridLayout在另一个BorderLayout中添加为south。网格为1行3列(按钮为其中一列)。水平尺寸足够大,因此无需将其缩小以水平安装 我的问题是这两个按钮大小不同。第一个比第二个大得多。我怀疑在这

在我的应用程序中,我有两个相同类型按钮的实例(我自己创建了一个类,该类对按钮进行子类化,并设置一个特定的UIID,还做一些其他事情…)

其中一个将添加到长方体布局中,长方体布局作为边框布局的中心添加。BoxLayout中的另一个组件是按钮上方的标签

另一个添加到GridLayout中,该GridLayout在另一个BorderLayout中添加为south。网格为1行3列(按钮为其中一列)。水平尺寸足够大,因此无需将其缩小以水平安装

我的问题是这两个按钮大小不同。第一个比第二个大得多。我怀疑在这个过程中,第二个被缩小了,但我不明白为什么。我希望第一个按钮与另一个按钮的大小相同,或者与上面标签的垂直大小相同(具有相应的水平大小)

我尝试使用按钮的setHeight和setPreferredHeight。结果是按钮实际上变小了,但不是上面的图像,所以图像被裁剪了


我还尝试将setSameHeight与第一个按钮及其上方的标签一起使用,但结果只是标签变大了。

您遇到的问题是GridLayout容器

GridLayout的作用是将容器分成3个相等的大小,并收缩任何列中的任何内容以适应其空间

另一方面,TableLayout与GridLayout相似,只是它很灵活。它会自行调整以适应其中最大组件的大小

将GridLayout更改为具有相同行数和列数的TableLayout,按钮将被固定


我建议您在将第二个按钮放入TableLayout之前,将其添加到BoxLayout容器中。

谢谢您的回答。。。但实际上我想做相反的事情。。。我想缩小第一个按钮,而不是把第二个按钮放大。那么,如何控制第一个按钮的大小使其变小呢?在这种情况下,请将第一个按钮放置在GridLayout中。有3列。如果你和别人分享你想要达到的目标的草图或设计,也许有更好的方法