所以我有这JButtons我添加图标。图标太大,所以我事先调整它们,并且它工作正常。除了当我调整窗口大小时,JButtons会改变大小,但不会改变图标,这是有问题的。自动调整JButton图标
有没有办法让一个Icon只填充它所连接的JButton?一些代码,以使其更清晰:
public JewelClass(){
setBackground (new Color (30,30,30));
addActionListener(this);
setLayout(new GridLayout());
ImageIcon icon = new ImageIcon(src/carre.jpg);
setIcon (resizeIcon(icon,60,60));
}
resizeIcon是一个个人的功能,这需要一个图标,宽度参数和高度参数,并返回一个调整大小图标(显然)。 我试着改变布局,但它没有改变任何东西。我尝试获取JButton的宽度/高度,但是因为在添加图标时它们不存在,所以它不起作用。
你们有什么想法如何解决这个问题吗?它不一定是一个图标,只要我的JButton充满了我给它的图像,它真棒:)
谢谢!
对于更简单的方法,更改为'int margin = 0; Dimension dim = this.getParent()。getSize();'因为父组件的边距已经设置,所以不需要重写'getMinimumSize()'和'getPreferredSize()' –
好极了!所以它可以绘制一个形状,但唯一的是,一旦我替换成g.setColor(Color.red); g.fillRect(margin,margin,dim.width - margin * 2,dim.height - margin * 2);' 由 'Icon icon = new ImageIcon(“src/triangle.jpg”); icon.paintIcon(this,g,60,60);' ,它根本不显示任何内容。 你知道这是为什么吗? –
@Mikalichov请参阅我的编辑 – mKorbel