如何设置自定义按钮的大小?

时间:2017-02-19 09:55:06

标签: java swing size jbutton

我创建了一个带有按钮自定义图标的GUI程序。但是,我无法在Java中设置这些按钮的大小,因此它们保持原始大小230x227。我试图让它们大约在20x20左右,所以我使用了以下代码:

classAlcBtn.setPreferredSize(new Dimension(20,20));
classAlcBtn.setIcon(new ImageIcon(getClass().getResource("Alchemist.png")));
classAlcBtn.setBorder(null);
classAlcBtn.setBorderPainted(false);
classAlcBtn.setContentAreaFilled(false);
classAlcBtn.setPressedIcon(
   new ImageIcon(getClass().getResource("alchemistClicked.png")));
classAlcBtn.setCursor(new Cursor(Cursor.HAND_CURSOR));

有没有办法强制这些图标缩小尺寸,还是我必须缩小实际图标文件的大小?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

假设你可以缩小按钮的大小,没有图标。因此,请使用以下方法调整图像大小,而不更改原始文件的大小:

 ImageIcon icon = new ImageIcon("whatever.jpg");
 Image img = icon.getImage() ;  
 Image newImg = img.getScaledInstance( NEW_WIDTH, NEW_HEIGHT,  java.awt.Image.SCALE_SMOOTH ) ;  
 icon = new ImageIcon( newImg );

 ...

 classAlcBtn.setIcon(icon);

如果Button调整大小本身无效,那么您可以尝试使用setMaximumSize()代替setPreferredSize()方法,如下所示:

classAlcBtn.setMaximumSize(new Dimension(100,100));

有关详细信息,请参阅this。关于尺寸。希望这有助于:)