将图标添加到JButton而不更改其大小

时间:2015-10-21 19:18:07

标签: java icons jbutton gridbaglayout

我正在尝试向Icon添加JButton 当我尝试这样做时,我的布局管理器(我使用GridBagLayout)调整按钮的大小,并根据图标的大小使其更大。

有没有办法避免这种情况?

2 个答案:

答案 0 :(得分:0)

您可以尝试 JButton#setPreferedSize(...)

或者您可以覆盖 paintComponent 方法:

JButton testButton = new JButton() {
   @Override
   protected void paintComponent(Graphics g) {
       super.paintComponent(g);
       g.drawImage(image, 0, 0, null);
   }
};

如果你想用多个按钮做这个,最好为它做一个课程,比如:

class ImageButton extends JButton {             
    private final Image image;                  

    public ImageButton(Image image) {           
        this.image = image;                     
    }                                           

    @Override                                   
    protected void paintComponent(Graphics g) { 
        super.paintComponent(g);                
        //drawing logic here                          
    }                                           
}

答案 1 :(得分:0)

我有同样的问题。请执行以下操作:

  1. 使用图像处理程序调整图像大小以适合按钮。
  2. 使用setMininumSize()并设置所需的最小大小。

这可能会解决您的问题。